如何使每个列中的所有重复值都填充为' 0'

时间:2017-12-08 07:10:17

标签: python pandas

我的问题是,每个列中的所有重复值都由' 0'填充。

我的数据如下所示: delAction

代码:

df2 = df[['timestamp', 'temperature', 'humidity', 'light', 'pressure', 'speed', 'battery_voltage', 'ddp']]
df2['timestamp'] = pd.to_datetime(df['timestamp'])
df2['timestamp'] = df2['timestamp'].map(lambda x: 
datetime.datetime.strftime(x,'%Y-%m-%d'))
df2 = df2.groupby('timestamp',as_index = False).sum()
df2['timestamp'] = pd.to_datetime(df2['timestamp'], format = '%Y-%m-%d')
df2.sort_values(by = ['timestamp'], ascending = [True])
df2.set_index('timestamp', inplace = True)
df2 = df2.resample('D').ffill().reset_index()
df2.duplicated(['temperature', 'humidity','light','pressure', 'speed', 'battery_voltage']) 

我使用过布尔方法,它给了我' True'和' False'背部。

1 个答案:

答案 0 :(得分:0)

我认为 ffill()方法是主要问题。这必须替换为fillna()。我还简化了你的代码:

df2 = df[['timestamp', 'temperature', 'humidity', 'light', 'pressure', 'speed', 'battery_voltage', 'ddp']]
df2['timestamp'] = pd.to_datetime(df['timestamp']).set_index('timestamp', inplace = True)
# df2 = df2.groupby(pd.Grouper(freq='D')).sum()
df2 = df2.resample('D').sum().fillna(0).reset_index()

我不需要在评论中添加的行,但是当您想要按天分组数据(并且不想重新取样)时,可以使用它;