熊猫:在新栏目中有条件地设定价值

时间:2018-03-07 22:20:54

标签: python pandas

我有一个df的Pandas DataFrame,DatetimeIndex。我正在尝试根据行的索引的日期字段是5还是6来创建新列is_weekend

这是我的尝试:

df["is_weekend"] = np.where(df.index.dayofweek in [5,6], 1, 0)

不幸的是,我明白了:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我查看了np.where的NumPy文档,但没有任何惊喜跳出来。

任何建议表示赞赏!

1 个答案:

答案 0 :(得分:1)

你可以尝试:

df["is_weekend"] = df.index.dayofweek.isin([5,6]).astype(int)

或者:

df["is_weekend"] = df.apply(lambda x: 1 if x.name.dayofweek in [5,6] else 0, axis=1)

或者使用np.where,将其更改为:

df["is_weekend"] = np.where(((df.index.dayofweek==5) | (df.index.dayofweek==6)), 1, 0)