首页 > 解决方案 > 数据帧子集中的字符串索引 - 熊猫

问题描述

我正在尝试根据列表中的值创建熊猫数据框的子集。但是,我需要包含字符串索引。我将用一个例子来演示:

这是我的数据框:

df = pd.DataFrame({'A' : ['1-2', '2', '3', '3-8', '4']})

这是它的样子:

A
0    1-2
1      2
2      3
3    3-8
4      4

我有一个值列表,我想用来从我的数据框中选择行。

list1 = ['2', '3']

我可以使用 .isin() 函数使用我的列表项从我的数据框中选择行。

subset = df[df['A'].isin(list1)]
print(subset)

   A
1  2
2  3

但是,我想要任何包含“2”或“3”的值。这是我想要的输出:

   A
1  1-2
2  2
3  3
4  3-8

我可以在 .isin() 函数中使用字符串索引吗?我正在努力想出另一种解决方法。

标签: pythonpandas

解决方案


检查str.splitisin_any

Newdf=df[df.A.str.split('-',expand=True).isin(['2','3']).any(1)].copy()
Out[189]: 
     A
0  1-2
1    2
2    3
3  3-8

推荐阅读