【发布时间】:2016-10-07 15:06:33
【问题描述】:
我有一个数据框,想根据条件创建一个新列,如果满足某个条件,则在这个新列中该值将来自另一列,否则它需要为零。 原始数据框是;
df2 = pd.read_csv('C:\Users\ABC.csv')
df2['Date'] = pd.to_datetime(df2['Date'])
df2['Hour'] = df2.Date.dt.hour
df2['Occupied'] = ''
Date Value Hour Occupied
2016-02-02 21:00:00 0.6 21
2016-02-02 22:00:00 0.4 22
2016-02-02 23:00:00 0.4 23
2016-02-03 00:00:00 0.3 0
2016-02-03 01:00:00 0.2 1
2016-02-03 02:00:00 0.2 2
2016-02-03 03:00:00 0.1 3
2016-02-03 04:00:00 0.2 4
2016-02-03 05:00:00 0.1 5
2016-02-03 06:00:00 0.4 6
如果 df2.Hour 大于或等于 9,我希望在 Occupied 列中具有与 df2.Value 相同的值,否则 Occupied 列中的值将为零。我已经尝试了以下代码,但它没有按我的意愿工作(它打印与 df2.Value 相同的值而不考虑 else 语句);
for i in df2['Hour']:
if i >= 9:
df2['Occupied'] = df2.Value
else:
df2['Occupied'] = 0
知道这有什么问题吗?
【问题讨论】:
标签: python if-statement pandas dataframe