gpt4 book ai didi

python - Pandas .isin() 用于列中每一行的值列表

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:31 27 4
gpt4 key购买 nike

我有一个小问题:我的 DataFrame 中有一个列,它有多个行,并且在每一行中它包含 1 个或多个以“M”字母开头后跟 3 位数字的值。如果有超过 1 个值,则它们以逗号分隔。我想打印出 DataFrame 的 View ,仅包含 1 列包含我指定的值的行(例如,我希望它们包含列表 ['M111', 'M222'] 中的任何项目)。我已经开始通过以下方式构建我的 bool 掩码:

df[df['Column'].apply(lambda x: x.split(', ').isin(['M111', 'M222']))]

在我看来,.apply() 和 .split() 方法首先将“列”值转换为每行中包含 1 个或多个值的列表,然后 .isin() 方法确认是否有任何每行项目列表中的项目数在指定值列表 ['M111', 'M222'] 中。然而在实践中,我没有得到所需的 DataFrame View ,而是得到了错误

'TypeError: unhashable type: 'list'

我做错了什么?

亲切的问候,绿色

最佳答案

我认为你需要:

df2 = df[df['Column'].str.contains('|'.join(['M111', 'M222']))]

关于python - Pandas .isin() 用于列中每一行的值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44126089/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com