python - 基于列表填充数据框列

标签 python pandas dataframe

我有一个数据框

vehicle_make    vehicle_model   vehicle_year
Toyota  Corolla 2016
Hyundai Sonata  2016
Cadillac    DTS 2006
Toyota  Prius   2014
Kia Optima  2015

我想添加一个新列“vehicle_make_category”,该列根据我拥有的列表进行填充

luxury=['Bentley',
'Maserati',
'Hummer',
'Porsche',
'Lexus']

non_luxury=['Saab',
'Mazda',
'Dodge',
'Volkswagen',
'Kia',
'Chevrolet',
'Hyundai',
'Ford',
'Nissan',
'Honda',
'Toyota'
]

怎样才能做到这一点?我尝试过使用

df['vehicle_make_category']=np.where(df['vehicle_make']=i for i in luxury, 'luxury')

但它不起作用...

最佳答案

简单

df["vehicle_make_category"] = None
df.loc[df["vehicle_make"].isin(luxury), "vehicle_make_category"] = "luxury"
df.loc[df["vehicle_make"].isin(non_luxury), "vehicle_make_category"] = "non_luxury"

关于python - 基于列表填充数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49864401/

相关文章:

python - 如何按 Pandas 中的时间戳排序?

python - 新闻 API - 将输出输出到 Pandas DataFrame

python - 读取文本文件并解释数据

python - Pandas DENSE RANK

python - 如何合并两个具有不同索引的数据帧?

python - pandas 中的逆向查找 : get ordered lists of row- and column-names

python - 如何找到 pandas 数据框中列中出现频率最高的单词

python - Pandas 按销售项目分组并统计列中每月的销售额

Python - Groupby DataFrameGroupBy 对象

python - 使用列表 Python 映射列数据框