如何检查字符串列表中的dataframe列值?

2024-10-01 09:22:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧df,想从中创建一个新的数据帧df_b,但只获取行的列df['id']的值在我的列表数组list_of_ids中的行。你知道吗

df['id']list_of_ids都包含字符串值。你知道吗

我想过使用regex,但是regex会很大,因为list_of_ids的长度是>;20个元素,所以需要在list_of_ids上使用一个生成器,但我不知道如何应用它。你知道吗

我在想:

list_of_ids = ["thing1", "thing2", "thing3" ]
df_b = df[df["id"].apply(lambda x: x in list_of_ids)==True]

或者我可以使用.str.contains()方法,但是传递一个由list_of_ids的所有元素构建的字符串,这些元素在这里由管道“|”分隔,但是这样做看起来并不“干净”。你知道吗


Tags: of数据字符串gtidids元素df
1条回答
网友
1楼 · 发布于 2024-10-01 09:22:01

生成示例数据帧:

n = 50
df = pd.DataFrame({
    'id': list(string.ascii_letters[:n]),
    'n': range(n)})
df.head()

Out:
    id  n
0   a   0
1   b   1
2   c   2
3   d   3
4   e   4

ids列表中选择ID与值匹配的值:

ids = ['a', 'd', 'x', 'A']
df[df['id'].isin(ids)]

Out:
    id  n
0   a   0
3   d   3
23  x   23
26  A   26

相关问题 更多 >