我的问题是,每个列中的所有重复值都由' 0'填充。
我的数据如下所示:
代码:
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
'背部。
答案 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()
我不需要在评论中添加的行,但是当您想要按天分组数据(并且不想重新取样)时,可以使用它;