2017-09-27 4 views
-2

添付した画像のように見えるcsvファイルには多くのデータセットがあります。csvファイルを結合し、時間単位でソートして列を平均します。

最初の列には常に時間が分単位で表示されますが、タイムステップとローの総数は生データファイル間で異なります。私はすべての生のファイルが結合され、時間でソートされた1つの出力ファイル(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 

が、それは正しい出力にはつながりません。私はパンダの初心者ですが、私は問題を十分説明することを願っています。ご意見やご提案ありがとうございました!


ありがとうございます。残念ながら、私がそれを実行すると、dat1.txtが存在しないというエラーメッセージが表示されます。申し訳ありませんが、ここでは生のテキストなどのデータ

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

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() 
を働くかもしれない、私はによって最初にRAWファイルを読んで、これは私には奇妙に思えます

dictをpd.concatに渡すと、dictキーがlevel0

のMultiIndex DataFrameが作成されます
関連する問題