2

毎日の値の合計が必要ですが、NaN 値を含まない日からのみです。私の csv ファイルには 30 分ごとのデータが含まれていますが、測定デバイスが故障することがあります。毎日の合計が必要ですが、NaN 値が含まれているとすぐに、この日を合計する必要はありません。私の Csv ファイルは次のようになります。

date        time       ET
28. Nov 01  08:15   -0.00152
28. Nov 01  08:45   -0.00324
28. Nov 01  09:15   0.00805
28. Nov 01  09:45   0.00684
28. Nov 01  10:15   0.00918
28. Nov 01  10:45   
28. Nov 01  11:15   0.00867
28. Nov 01  11:45   0.01014
28. Nov 01  12:15   0.01697
28. Nov 01  12:45   0.00739

この日は 1 つの欠損値であるため、この日の合計は必要ありませんが、すべての測定値を持つ他のすべての日の合計が必要です。

私の現在のコードはこれです:

import pandas as pd
ts = pd.read_csv('C:\Python27\Scripts\ET_T_2000.csv', sep=';', parse_dates=[['date', 'time']])
ts.fillna(0)
ts1 = ts.set_index('date_time')['ET'].resample('D', how='sum')

誰もそれを行う方法を知っていますか?

4

2 に答える 2

2

私の理解が正しければ、NaN を含むすべての日からすべてのデータを除外し、その日を合計して完全な NaN のないデータ セットを作成します。

簡単にするために、squeezeキーワードを使用して、DataFrame ではなく Series にします。(これは必須ではありませんが、次の内容をより直接的なものにします。)

et = pd.read_csv(..., index_col=0, squeeze=True)

NaN のある日を除外するには、

complete_days_only = et.groupby(lambda x: x.date).filter(lambda x: ~x.isnull().any())

そして今リサンプリング

complete_days_only.resample('D', how='sum')
于 2013-08-16T19:02:29.430 に答える
0

この場合、次を使用したいと思います。

ts.dropna()

于 2013-08-17T00:42:42.497 に答える