小编Gre*_*666的帖子

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

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

df[df['Column'].apply(lambda x: x.split(', ').isin(['M111', 'M222']))]
Run Code Online (Sandbox Code Playgroud)

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

'TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

亲切的问候,格力姆

python pandas

4
推荐指数
2
解决办法
1万
查看次数

熊猫extractall()-返回列表,而不是多级索引?

我有一个问题,我觉得以前可能已经问过,但是形式不同。如果是这种情况,请指出我的原文。

无论如何,我正在使用Pandas extractall()方法,但我不喜欢它返回具有MultiLevel索引的DataFrame并(original index -> 'match' index)列出所有找到的元素的事实,match 0, match 1, match 2 ... 如果输出是具有多个正则表达式搜索结果的单个索引DataFrame( (如果适用)返回为单个单元格中的列表。目前有可能吗?

这是我所想到的可视化效果:

电流输出:

                   X
index    match
  0        0      thank
  1        0      thank
           1      thanks
           2      thanking
  2        0      thanked
Run Code Online (Sandbox Code Playgroud)

所需的输出

          X
index
  0      thank
  1      [thank, thanks, thanking]
  2      thanked
Run Code Online (Sandbox Code Playgroud)

任何建议,我将不胜感激。

python regex pandas

3
推荐指数
1
解决办法
533
查看次数

标签 统计

pandas ×2

python ×2

regex ×1