Python数据框: Find if Column Value is in List Variables and Label Accordingly

标签 python list pandas dataframe matching

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_listweekday_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"

enter image description here

<小时/>

另一个单行选项是使用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/

相关文章:

python - 通过覆盖 python 中的 __new__ 来限制实例总数

python - 使用 Python freeze.py 出错

python - 停止 callgrind 中的检测

python - 如何在 python 上制作网格(使用 matplotlib 或其他库)

python - 如何在我的 JSON 列表中添加新字典

python - 填充 DataFrame 中的单元格

python - 为什么将一个列表(长度为 n)传递给 numba nopython 函数是一个 O(n) 操作

Java - 满足谓词的第一个元素的位置

python - 尽管调用单个索引,Pandas .loc[] 方法仅返回 DataType 而不是 Series

python - 数据作为数据帧附加在内存中