

Win10のRorPython環境です。

以下のような1つのcsvファイルに複数のテーブルが有る場合の読み込みで簡単な方法をご存知の方いらっしゃいますでしょうか。Rのパッケージ等ありますでしょうか。

[code]

    その1,x1,q2,q4,x9
    2,aa,3,4,0
    2,you,2,3,1
    
    その2,x1,q2,q4,x9
    5,aa,3,7,0
    2,you,4,3,1
    7,express,1,1,2
    0,no1,3,6,5
    
    その6,x1,q2,q4,x9
    5,xyz,3,2,0
    
[/code]

列名は同じですが一行開けて複数のテーブルが1つのcsvファイルに入っているパターンです。  
（エクセルやエディタで手作業でコピペはなしでお願いします…  
ファイル数、テーブル数ともにだいぶ多いので。）

よろしくお願いいたします。

****追記****

テーブルの列名が最初のみそれぞれで違ったようです…  
Rの方の読み込みは影響がなさそうですが…  
すいません。


CC BY-SA 4.0
2018-11-20T14:44:42.260
50476
2018-11-26T02:30:44.567
2018-11-25T17:10:29.283
12457
12457
question
python r
1つのcsvファイルに複数のテーブルが有る場合の読み込み


以下、R を利用する場合の一例です(外部パッケージは使用していません)。  
データファイル名を `tables.csv` としていて、結果はデータフレームのリストになります。

[code]

    > fname <- 'tables.csv'
    > tbls <- unlist(strsplit(readChar(fname, file.info(fname)$size),
                              split = '(\r?\n){2}', perl = T))
    > dfs <- lapply(tbls, function(t) { read.csv(text = t) })
    > length(dfs)
    [1] 3
    > dfs[[1]]
      q1  x1 q2 q4 x9
    1  2  aa  3  4  0
    2  2 you  2  3  1
    > dfs[[2]]
      q1      x1 q2 q4 x9
    1  5      aa  3  7  0
    2  2     you  4  3  1
    3  7 express  1  1  2
    4  0     no1  3  6  5
    > dfs[[3]]
      q1  x1 q2 q4 x9
    1  5 xyz  3  2  0
    
[/code]


CC BY-SA 4.0
2018-11-20T16:05:43.407
50479
2018-11-20T18:35:35.473
2018-11-20T18:35:35.473
50476
answer


複数のテーブルをどう使うかによって回答が違ってくるのですが、中間にある空白行とヘッダー業を無視すればいいのであれば、PythonだとPandasを使うと、データが数字だけで空白のない列を選んで次のようなコードで処理できます。

[code]

    import pandas as pd
    import numpy as np
    
    column = 0
    df = pd.read_csv('test2.csv', converters={column: lambda x: x if x.isnumeric() else np.nan})
    df.dropna(subset=[df.columns[column]], inplace=True)
    
    # 保存したければ
    df.to_csv(save_fname, index=false)
    
[/code]


CC BY-SA 4.0
2018-11-21T02:45:49.063
50488
2018-11-26T02:30:44.567
2018-11-26T02:30:44.567
15171
15171
50476
answer