【发布时间】:2017-08-02 13:54:54
【问题描述】:
我有 df:
Hour Energy Wh
1 4
2 6
3 9
4 15
我想添加一个显示每小时差异的列。我正在使用这个:
df['Energy Wh/h'] = df['Energy Wh'].diff().fillna(0)
df1:
Hour Energy Wh Energy Wh/h
1 4 0
2 6 2
3 9 3
4 15 6
但是,Hour 1 值在 Energy Wh/h 列中显示为 0,而我希望它显示为 4,如下所示:
Hour Energy Wh Energy Wh/h
1 4 4
2 6 2
3 9 3
4 15 6
我尝试过使用 np.where:
df['Energy Wh/h'] = np.where(df['Hour'] == 1,df['Energy Wh'].diff().fillna(df['Energy Wh']),df['Energy Wh'].diff().fillna(0))
但我在第 1 小时行 (df1) 中仍然得到 0 值,没有错误。如何获得“能量 Wh”中要填充的第 1 小时的值,而不是 0?
【问题讨论】:
-
试试这个:
df['Energy Wh'].diff().fillna(df['Energy Wh'].iloc[0])
标签: python pandas numpy dataframe