2017-11-10 2 views
1

私はこのpythonの問題について長らく頭を悩まされています。私はいくつかのcsvファイルをループしており、各csvファイルの1つの列が列名であり、date_timeの共通インデックスを設定する方法でcsvファイルを追加する1つのデータフレームが必要です。ループ内にデータフレームを追加し、Pythonで新しいデータフレームを作成する

valuepodという数字を除き、このデータフレームのように見える11個のcsvファイルがありますが、time_stampはすべてのcsvで同じです。

data

pod time_stamp value 
0 97 2016-02-22 3.048000 
1 97 2016-02-29 23.622001 
2 97 2016-03-07 13.970001 
3 97 2016-03-14 6.604000 
4 97 2016-03-21 NaN 

そして、これはforループ私がこれまで持っていることである。

import glob 
import pandas as pd 

filenames = sorted(glob.glob('*.csv')) 

new = [] 

for f in filenames: 
    data = pd.read_csv(f) 

    time_stamp = [pd.to_datetime(d) for d in time_stamp] 

    new.append(data) 

my_df = pd.DataFrame(new, columns=['pod','time_stamp','value']) 

は私がしたいことは、各列がの結果である。このように見えるのデータフレームであります各csvファイルのvalue

time_stamp 97  98  99 ... 
2016-02-22 3.04800 4.20002 3.5500 
2016-02-29. 23.62201 24.7392 21.1110 
2016-03-07 13.97001 11.0284 12.0000 

今のところ、my_dfの出力は非常に間違っていて、このように見えます。私が間違っていた場所のアイデア?

0 
0 pod time_stamp value 0 22 2016-... 
1 pod time_stamp value 0 72 2016-... 
2 pod time_stamp value 0 79 2016-0... 
3 pod time_stamp value 0 86 2016-... 
4 pod time_stamp value 0 87 2016-... 
5 pod time_stamp value 0 88 2016-... 
6 pod time_stamp value 0 90 2016-0... 
7 pod time_stamp value 0 93 2016-0... 
8 pod time_stamp value 0 95 2016-... 
+1

あなたは 'time_stamp'を変換するが、それをバック割り当てないでください。さらに、新しい変数 'rain'を作成しますが、何もしません。 –

+0

説明をクリーンアップします。 – JAG2024

答えて

2

は、私が最初にpd.concatと一緒にすべてのあなたのデータフレームを連結した後、最後に1つのpivotの操作を行うことをお勧めしたいです。

filenames = sorted(glob.glob('*.csv')) 

new = [pd.read_csv(f, parse_dates=['time_stamp']) for f in filenames] 
df = pd.concat(new) # omit axis argument since it is 0 by default 

df = df.pivot(index='time_stamp', columns='pod') 

私はロードが不要になった後、その解析していない、time_stampときロードデータフレームを解析するread_csvを強制しています注意してください。


MCVE

df 

    pod time_stamp  value 
0 97 2016-02-22 3.048000 
1 97 2016-02-29 23.622001 
2 97 2016-03-07 13.970001 
3 97 2016-03-14 6.604000 
4 97 2016-03-21  NaN 

df.pivot(index='time_stamp', columns='pod') 

       value 
pod    97 
time_stamp   
2016-02-22 3.048000 
2016-02-29 23.622001 
2016-03-07 13.970001 
2016-03-14 6.604000 
2016-03-21  NaN 
+0

これは本当にきれいです。優れた。どうもありがとう。 – JAG2024

+0

@ JAG2024ありがとう、 'axis = 0'だったはずです。打ち間違え。 –

+0

私はそれが好きです。 。 。 – piRSquared

関連する問題