gpt4 book ai didi

python - Pandas 返回完全匹配的行,其中列可以有多个值

转载 作者:太空宇宙 更新时间:2023-11-04 04:05:44 24 4
gpt4 key购买 nike

我正试图找到解决这个问题的办法:

import pandas as pd

i = ['7.3, 6.9.1', '7.3.1, 5.10', '6.9']

s = pd.DataFrame(i, columns=['vals'])
s[(s["vals"].apply(lambda x: '7.3' in x))]

这里期望的输出是:

    vals
0 7.3, 6.9.1

但是,我得到的输出是:

    vals
0 7.3, 6.9.1
1 7.3.1, 5.10

注意,我需要支持某些版本的 in,因为 vals 中可以有多个值;但是,我需要确保我只取回完全匹配的行,即 7.3 而不是 7.3.1

最佳答案

mapset.isdisjoint

s[~s.vals.str.split(', ').map({'7.3'}.isdisjoint)]

vals
0 7.3, 6.9.1

splitexpand=Trueany(axis=1)

s[s.vals.str.split(', ', expand=True).eq('7.3').any(1)]

vals
0 7.3, 6.9.1

理解/ bool 切片

s[['7.3' in x.split(', ') for x in s.vals]]

vals
0 7.3, 6.9.1

关于python - Pandas 返回完全匹配的行,其中列可以有多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57384223/

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