[英]How to fill in missing values in pandas dataframe with zeros?
我有一个 pandas DataFrame 具有以下值:
df =
1970-01-01 00:00:18 1 1 0 1 0
1970-01-01 00:00:19 0 0 0 1 0
1970-01-01 00:00:20 0 0 0 1 0
1970-01-01 00:00:25 0 1 0 0 1
1970-01-01 00:00:26 0 0 0 0 1
现在,我想为每一秒添加行,并用零填充新行的值。
df =
1970-01-01 00:00:18 1 1 0 1 0
1970-01-01 00:00:19 0 0 0 1 0
1970-01-01 00:00:20 0 0 0 1 0
1970-01-01 00:00:21 0 0 0 0 0
1970-01-01 00:00:22 0 0 0 0 0
1970-01-01 00:00:23 0 0 0 0 0
1970-01-01 00:00:24 0 0 0 0 0
1970-01-01 00:00:25 0 1 0 0 1
1970-01-01 00:00:26 0 0 0 0 1
我研究了重新索引和重新采样,但没有找到让它工作的方法。
理想情况下,我还想从时间戳中删除“1970-01-01”部分。 但这没有优先权。
使用DataFrame.asfreq
与DatetimeIndex
一起使用,如有必要,最后将index
转换为列:
print (df)
date a b c d e
0 1970-01-01 00:00:18 1 1 0 1 0
1 1970-01-01 00:00:19 0 0 0 1 0
2 1970-01-01 00:00:20 0 0 0 1 0
3 1970-01-01 00:00:25 0 1 0 0 1
4 1970-01-01 00:00:26 0 0 0 0 1
df['date'] = pd.to_datetime(df['date'])
df = df.set_index('date').asfreq('S', fill_value=0).reset_index()
print (df)
date a b c d e
0 1970-01-01 00:00:18 1 1 0 1 0
1 1970-01-01 00:00:19 0 0 0 1 0
2 1970-01-01 00:00:20 0 0 0 1 0
3 1970-01-01 00:00:21 0 0 0 0 0
4 1970-01-01 00:00:22 0 0 0 0 0
5 1970-01-01 00:00:23 0 0 0 0 0
6 1970-01-01 00:00:24 0 0 0 0 0
7 1970-01-01 00:00:25 0 1 0 0 1
8 1970-01-01 00:00:26 0 0 0 0 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.