从列中提取多个值到熊猫中的新列

我有一个数据框df有一个列名Category里面的值是

Category

Furniture

Technology

Office Supply


这三个值重复,列中总共有 1000 个值。我想创建一个新的列名称Category_filter,其值来自Category列中的Furniture和Technology。


df['Category_Filter'] = df[df['Category'].isin(['Furniture', 'Technology'])]

我已经尝试使用上面的代码来创建新列但没有工作。


Category_Filter

Furniture

Technology

这是所需的输出


浮云间
浏览 201回答 2
2回答

一只斗牛犬

我假设您的意思是您想要一个数据框,其中“类别”中的值是“家具”或“技术”。这是你可以做的事情。df[df['Category'].isin(['Furniture ', 'Technology '])]如果这不是你的意思,也许你可以澄清一下。编辑:在下面回复您的评论: df['Category_filter'] = df['Category'].where(df['Category'].isin(['Furniture ', 'Technology ']))

ABOUTYOU

如果我正确理解了您,那么您正在查找列中每个元素重复的值的总数。示例数据帧:>>> df        Category0      Furniture1     Technology2  Office Supply3      Furniture4     Technology5  Office Supply6      Furniture7     Technology8  Office Supply根据您更新的代码它应该工作,只有您不匹配的值才会报告为NaN..>>> df['Category_Filter'] = df[df['Category'].isin(['Furniture', 'Technology'])]>>> df        Category Category_Filter0      Furniture       Furniture1     Technology      Technology2  Office Supply             NaN3      Furniture       Furniture4     Technology      Technology5  Office Supply             NaN6      Furniture       Furniture7     Technology      Technology8  Office Supply             NaN或者,如果您希望删除所有具有NaN值的行,只需尝试:>>> df.dropna()# df.dropna(inplace=True)   # make in permanent to the DataFrame     Category Category_Filter0   Furniture       Furniture1  Technology      Technology3   Furniture       Furniture4  Technology      Technology6   Furniture       Furniture7  Technology      Technology
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python