2016-11-18 1 views
0

동일한 시트에 두 세트의 데이터가있는 CSV 파일이 있습니다. 나는 나의 연구를했고 가장 가까운 것은 내가 붙인 것이다. 내가 가지고있는 문제는 둘 다 테이블이 아니라 각각의 데이터 세트입니다. 둘 다 여러 행으로 구분됩니다. 각 데이터 세트를 별도의 CSV로 저장하려고합니다. 파이썬에서 가능합니까? 친절한 도움을주십시오.두 세트의 데이터가 CSV 파일

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

첫 번째 세트 :

Presented_By:  Source:    City: 
Chris    Realtor    Knoxville 
John     Engineer   Lantana 
Wade     Doctor    Birmingham 

두 번째 세트 :

DriveBy    15 
BillBoard    45 
Social Media   85 

내 소스 내가 CSV 파일로 변환 엑셀 파일입니다.

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의 대답을 사용하십시오. 그렇지 않다면 두 번째 세트가 시작될 때 쉽게 감지 할 수있는 방법이 있습니까? 예 : 두 개의 빈 행입니다. – Batman

+0

질문에 소스 코드를 추가 할 수 있습니까? – ecounysis

+0

코드를 반영하도록 원본 게시물을 업데이트했습니다. 파이썬 스크립트를 편집 한 후에도 처음에는 CSV로 변환 할 때와 동일한 형식으로 나타납니다. –

답변

1

팬더에서 사용 skiprows 'read_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에게 감사드립니다. 첫 번째 세트는 처음부터 시작되므로 어떤 행도 건너 뛰지 않아도되지만 두 번째 세트는 정확히 14 개의 행 뒤에 설정됩니다. –

+0

@Pythoner 파일 형식이 변경되는 지점을 찾기 위해 답을 업데이트했습니다. – kilojoules