2016-11-18 7 views
0

同じシートに2セットのデータを持つCSVファイルがあります。私は研究をしました。私が見つけた最も近いものは、私が付けたものです。私が抱えている問題は、それらの両方がテーブルではなく、別々のデータセットであるということです。両方とも複数の行で区切られています。私はそれぞれのデータセットを別々のCSVとして保存したいと思います。これはPythonで可能ですか?あなたの親切な支援を提供してください。CSVファイルの2つのデータセット

Python CSV module: How can I account for multiple tables within the same file?

最初のセット:

​​

第二セット:

DriveBy    15 
BillBoard    45 
Social Media   85 

私のソースは、私はCSVファイルに変換するExcelファイルです。

import pandas as pd 
data_xls = pd.read_excel('T:\DataDump\Matthews\REPORT 11.13.16.xlsm', 'InfoCenterTracker', index_col=None) 
data_xls.to_csv('your_csv.csv', encoding='utf-8') 

second_set = pd.read_csv('your_csv.csv',skiprows=[10,11,12,13,14,15,16,17,18,19,20,21,22,23,23]) 
+0

3は、常にデータであり、同じ場所?もしそうなら、@kilojulesの答えを使用してください。そうでない場合は、2番目のセットが開始されたときに簡単に検出する方法がありますか?例えば2つの空白行。 – Batman

+0

あなたのソースコードを質問に追加できますか? – ecounysis

+0

オリジナルの投稿を更新して自分のコードを反映しました。 Pythonスクリプトを編集した後でも、最初にCSVに変換したときと同じ形式で表示されます。 –

答えて

1

パンダで使用skiprowsread_csv

$ cat d.dat 
Presented_By:  Source:    City: 
Chris    Realtor    Knoxville 
John     Engineer   Lantana 
Wade     Doctor    Birmingham 
DriveBy    15 
BillBoard    45 
Social Media   85 

In [1]: import pandas as pd 
In [2]: pd.read_csv('d.dat',skiprows=[0,1,2,3]) 
Out[2]: 
    DriveBy    15 
0 BillBoard    45 
1 Social Media   85 

In [3]: pd.read_csv('d.dat',skiprows=[4,5,6]) 
Out[3]: 
     Presented_By:  Source:    City: 
0 Chris    Realtor    Knoxv... 
1 John     Engineer   Lantana 
2 Wade     Doctor    Birmi... 

あなたはcsvファイルは2つのエントリがある場合を検索することにより、スキップする何行を検出することができますがない

In [25]: for n, line in enumerate(open('d.dat','r').readlines()): 
    ...:  if len(line.split()) !=3: 
    ...:  breakpoint = n 
    ...:  
In [26]: pd.read_csv('d.dat',skiprows=range(breakpoint-1)) 
Out[26]: 
    DriveBy    15 
0 BillBoard    45 
1 Social Media   85 

In [27]: pd.read_csv('d.dat',skiprows=range(breakpoint-1, n+1)) 
Out[27]: 
     Presented_By:  Source:    City: 
0 Chris    Realtor    Knoxv... 
1 John     Engineer   Lantana 
2 Wade     Doctor    Birmi... 
+0

ありがとうKilojoules、最初のセットは先頭から開始するので、その行をスキップする必要はありませんが、2番目のセットは14行後に正確に設定されます。 –

+0

@Pythonerファイル形式が変更されるポイントを見つけるために私の答えを更新しました – kilojoules

関連する問題