2017-09-27 6 views
-2

첨부 된 그림과 비슷한 모양의 CSV 파일에 많은 데이터 세트가 있습니다.csv 파일을 결합하여 시간순으로 정렬하고 열을 평균화합니다.

첫 번째 열에는 항상 분 단위의 시간이 있지만 원시 데이터 파일 간에는 시간 단계와 총 행 수가 다릅니다. 모든 원시 파일을 결합하고 시간순으로 정렬하는 하나의 출력 파일 (csv 파일)을 갖고 싶습니다. 그래서 시간은 컬럼의 상단에서 하단으로 증가합니다. 두 개 이상의 전화 번호가있는 경우

raw data and output

농도 열은

평균화한다.

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 

d1 = pd.read_csv('dat1.txt', sep="\t") 
d2 = pd.read_csv('dat2.txt', sep="\t") 

d1.columns 
d2.columns 

merged_outer = pd.merge(d1,d2, on='time', how='outer') 
print merged_outer 

을하지만 올바른 출력에 연결되지 않습니다

나는이 같은 시도했다. 나는 Pandas의 초심자이지만 문제를 충분히 설명해주기를 바랍니다. 어떤 아이디어 나 제안을 해주셔서 감사합니다!


감사합니다. 불행히도, 내가 그것을 실행하면 dat1.txt가 존재하지 않는다는 에러 메시지가 나타납니다.

d1 = pd.read_csv('dat1.txt', sep="\t") 
d2 = pd.read_csv('dat2.txt', sep="\t") 

죄송합니다, 여기에 원시 텍스트로 데이터 : I에 의해 처음 원시 파일을 읽을 이것은 나에게 이상한 것 같다

이 같은
raw data 1 
time column2 column3 concentration 
1 2 4 3 
2 2 4 6 
4 2 4 2 
7 2 4 5 


raw data 2 
time column2 column3 concentration 
1 2 4 6 
2 2 4 2 
8 2 4 9 
10 2 4 5 
12 2 4 7 
+1

다음에 질문 할 때 스크린 샷 대신 csv 파일의 원시 텍스트를 붙여 넣은 다음 다른 사람들이 자신의 코드를 더 쉽게 테스트 할 수 있습니다 –

답변

1

뭔가가 작동 할 수

filenames = ['dat1.txt', 'dat2.txt',...] 
dataframes = {filename: pd.read_csv(filename, sep="\t") for filename in filenames} 

merged_outer = pd.concat(dataframes).groupby('time').mean() 

pd.concat에 dict을 전달하면 dict 키가 level0

인 MultiIndex DataFrame이 만들어집니다