gpt4 book ai didi

python - 返回特定整数搜索的数据帧行

转载 作者:行者123 更新时间:2023-12-01 07:21:19 25 4
gpt4 key购买 nike

我想返回一个不包含特定整数(例如 2)的过滤数据帧。但是,它确实需要返回具有整数(例如 12、22、或 200...等)的行。

示例:

d = {'num_list': ["1,2,3,10,11,12,13","","4,5,6","11,12,13","2,3,4,12","12,13"]}
searchfor = "2"

df = pd.DataFrame(data=d)

filtered_df = df[~df['num_list'].str.contains(searchfor)]

数据框:

                num_list
0 1,2,3,10,11,12,13
1
2 4,5,6
3 11,12,13
4 2,3,4,12
5 12,13

预期结果:

                num_list
1
2 4,5,6
3 11,12,13
5 12,13

实际结果:

                num_list
1
2 4,5,6

此代码与第 3 行和第 5 行中也存在的字符串“2”匹配。尝试找到正确的方法来解决此问题。我正在考虑将列 num_list 更改为列表,但我不知道如何过滤数据框列表。

d = {'num_list': [[1,2,3,10,11,12,13],[],[4,5,6],[11,12,13],[2,3,4,12],[12,13]]}
searchfor = 2

df = pd.DataFrome(data=d)

??

数据框:

                   num_list
0 [1, 2, 3, 10, 11, 12, 13]
1 []
2 [4, 5, 6]
3 [11, 12, 13]
4 [2, 3, 4, 12]
5 [12, 13]

这是正确的方法吗?如何返回没有特定整数 2 的行(即返回行 1,2,3,5)?提前致谢。

最佳答案

按照建议in this great answer ,您可以使用掩码和 apply 函数来解决您的问题陈述。

d = {'num_list': [[1,2,3,10,11,12,13],[],[4,5,6],[11,12,13],[2,3,4,12],[12,13]]}
searchfor = 2
df = pd.DataFrame(data=d)

# Here we create our mask that is essentially a list of True and False for
# each row on which the condition applies.
mask = df.num_list.apply(lambda x: searchfor not in x)

# Now we can apply the mask to df
df_filtered = df[mask]

未过滤的数据帧:

>>> df
num_list
0 [1, 2, 3, 10, 11, 12, 13]
1 []
2 [4, 5, 6]
3 [11, 12, 13]
4 [2, 3, 4, 12]
5 [12, 13]

并且 df_filtered 的结果现在包含除由 searchfor 中的值组成的行之外的所有行:

>>> df_filtered
num_list
1 []
2 [4, 5, 6]
3 [11, 12, 13]
5 [12, 13]

关于python - 返回特定整数搜索的数据帧行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57682813/

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