gpt4 book ai didi

python - 过滤数据框匹配列值与python中的列表值

转载 作者:行者123 更新时间:2023-11-28 21:34:38 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to filter Pandas dataframe using 'in' and 'not in' like in SQL

(10 个回答)


2年前关闭。




我有一个 DataFrame像下面这样:

import numpy as np
import pandas as pd
import string
import random

random.seed(42)

df = pd.DataFrame({'col1': list(string.ascii_lowercase)[:11],
'col2':[random.randint(1,100) for x in range(11)]})

df

col1 col2
0 a 64
1 b 3
2 c 28
3 d 23
4 e 74
5 f 68
6 g 90
7 h 9
8 i 43
9 j 3
10 k 22

我正在尝试基于过滤匹配值列表的前一个数据帧的行来创建一个新的数据帧。我已经尝试了下一段代码:
df_filt = df[df['col1'] in ['a','c','h']]

但我得到一个错误。我期待下一个结果:
df_filt

col1 col2
0 a 64
1 c 28
2 h 9

我正在寻找一种灵活的解决方案,该解决方案允许基于匹配列表中比示例中显示的元素更多的元素进行过滤。

最佳答案

您可以使用 pandas.Series.isin 用于复合“输入”检查。

输入数据框:

>>> df
>>>
col1 col2
0 a 64
1 b 3
2 c 28
3 d 23
4 e 74
5 f 68
6 g 90
7 h 9
8 i 43
9 j 3
10 k 22

输出数据帧:
>>> df[df['col1'].isin(['a', 'c', 'h'])]
>>>
col1 col2
0 a 64
2 c 28
7 h 9

关于python - 过滤数据框匹配列值与python中的列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53082014/

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