我已将csv文件读入数据框,如下所示:
Datetime Value
0 2017-01-04 00:00:00 0.00
1 2017-01-04 00:15:00 2.00
2 2017-01-04 00:30:00 2.00
3 2017-01-04 00:45:00 1.00
4 2017-01-04 01:00:00 3.00
...
15542 2017-09-09 23:45:00 8.00
[15542 rows x 2 columns]
由于测量失败,缺少某些日期时间。所以我用过
resample("15min").mean().fillna(0)
就好而言,缺少的差距已经填补,但不知何故新数据框未完成 - 确切地说 - 超出特定日期时间的行不包括在内(8月12日之后的所有数据),令我惊讶的是行数更多加倍:
Datetime Value
0 2017-01-04 00:00:00 0.00
1 2017-01-04 00:15:00 2.00
2 2017-01-04 00:30:00 2.00
32543 2017-12-08 23:45:00 0.00
[32544 rows x 2 columns]
我的目标只是阅读csv,填写缺少的日期时间间隔,并将值设置为0.00,其中日期时间已完成。在这种特殊情况下,这应该导致[15552 x 2 columns]
(注释:需要添加10个日期时间/值)。
以下是代码:
import pandas as pd
def read_csv():
for filename in path:
file_list.append(filename)
print(file_list)
dfs = [pd.read_csv(filename, sep=',', parse_dates=[1], decimal='.',
names=headers)for filename in path]
df = pd.concat(dfs)
df_new = df.set_index('Datetime').resample('15 min').mean().fillna(0).reset_index()
print(df_new)
关于重新索引问题的想法但无法解决它。 提前谢谢。
答案 0 :(得分:0)
您想重新索引数据,而不仅仅是重新取样。
import pandas as pd
df = df.set_index('Datetime').resample('15min').mean()
new_index = pd.date_range(start=df.index.min(), end=df.index.max(), freq="15min")
df = df.reindex(new_index, fill_value=0)
这将根据提供的date_range将新值添加到索引中。