Python 熊猫:在新列中有条件地设置值

Python 熊猫:在新列中有条件地设置值,python,pandas,Python,Pandas,我有一个熊猫数据帧,df,它有一个DatetimeIndex。我正在尝试创建一个新列is_weekend,它基于行的索引的day字段是5还是6 以下是我的尝试: 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

我有一个熊猫数据帧,
df
,它有一个
DatetimeIndex
。我正在尝试创建一个新列
is_weekend
,它基于行的索引的day字段是5还是6

以下是我的尝试:

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()
我查看了NumPy文档中的
np。在那里,
但没有什么令人惊讶的东西跳出来

任何建议,谢谢

你能试试吗:

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

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

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