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)