1) 我有一个名为 weekday_list 的列表变量,它由用逗号分隔的字符串单词组成
示例:weekday_list = ['星期一', '星期二', '星期三']
2) 我还有另一个类似的列表变量,名为周末列表
示例:weekend_list = ['星期六', '星期日']
假设我有以下数据框:
Date Day_of_Week
1/5 Monday
1/6 Tuesday
1/7 Wednesday
1/8 Thursday
1/9 Friday
1/10 Saturday
1/11 Sunday
我想用 Python 代码执行以下操作:
a) 创建一个名为“Label”的新列,如果“Day_of_Week”列中的值位于变量 weekday_list 中,则该列显示“weekday”
b) 如果“Day_of_Week”列中的值位于变量周末列表中,则表示“周末”
c) 如果“Day_of_Week”列中的值不在两个变量中,最后会显示 NA
*非常感谢任何帮助
最佳答案
假设您使用pandas
,有几种不同的方法可以做到这一点。这是一个直观的选项。工作方式:使用 .isin()
方法创建一个逻辑索引来指示 Day_of_Week 是否在 weekday_list 或 weekday_list 中>weekend_list 或两者都不是,然后使用 .loc
访问器相应地更新 Label 列:
import numpy as np
df["Label"] = np.nan
df.loc[df.Day_of_Week.isin(weekday_list), "Label"] = "weekday"
df.loc[df.Day_of_Week.isin(weekend_list), "Label"] = "weekend"
<小时/>
另一个单行选项是使用np.where
:
df["Label"] = np.where(df.Day_of_Week.isin(weekday_list), "weekday",
np.where(df.Day_of_Week.isin(weekend_list), "weekend",
None))
关于Python数据框: Find if Column Value is in List Variables and Label Accordingly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41416773/