2017-05-04 11 views
1

のは、私のようにデータフレームを持っているとしましょう:Python:データフレームに欠落している日時の値を入力して入力しますか?

|  timestamp  | value | 
| ------------------- | ----- | 
| 01/01/2013 00:00:00 | 2.1 | 
| 01/01/2013 00:00:01 | 2.1 | 
| 01/01/2013 00:00:02 | 2.1 | 
| 01/01/2013 00:00:03 | 3.7 | 
| 01/01/2013 00:00:04 | 3.7 | 
| 01/01/2013 00:00:05 | 2.4 | 

がどのように私はこれについて行くん:

|  timestamp  | value | 
| ------------------- | ----- | 
| 01/01/2013 00:00:00 | 2.1 | 
| 01/01/2013 00:00:03 | 3.7 | 
| 01/01/2013 00:00:05 | 2.4 | 

私はとのデータフレームを持っているしたいのですが?

答えて

2

あなたはffillresampleを使用することができます。

print (df.dtypes) 
timestamp  object 
value  float64 
dtype: object 

df['timestamp'] = pd.to_datetime(df['timestamp']) 

print (df.dtypes) 
timestamp datetime64[ns] 
value    float64 
dtype: object 

df = df.set_index('timestamp').resample('S').ffill() 
print (df) 
        value 
timestamp     
2013-01-01 00:00:00 2.1 
2013-01-01 00:00:01 2.1 
2013-01-01 00:00:02 2.1 
2013-01-01 00:00:03 3.7 
2013-01-01 00:00:04 3.7 
2013-01-01 00:00:05 2.4 

df = df.set_index('timestamp').resample('S').ffill().reset_index() 
print (df) 
      timestamp value 
0 2013-01-01 00:00:00 2.1 
1 2013-01-01 00:00:01 2.1 
2 2013-01-01 00:00:02 2.1 
3 2013-01-01 00:00:03 3.7 
4 2013-01-01 00:00:04 3.7 
5 2013-01-01 00:00:05 2.4 
+0

あなたが 'pd.to_datetimeを()' しなかった理由を教えてください。 はタイムスタンプがdatetime形式ではありませんか? – aswa09

+0

'datetime'と' 01/01/2013 00:00:00'だけで動作するリサンプルはdatetimeではないので、datetime – jezrael

+0

の文字列reprですが、一旦 'resample'したら、タイムスタンプはインデックスになりますか? df.index.valuesをリストにコピーして列にしてからインデックスを再作成する必要がありますか? – aswa09

関連する問題