gpt4 book ai didi

python - Groupby 并提取仅包含具有模式值的组

转载 作者:行者123 更新时间:2023-12-04 10:01:35 24 4
gpt4 key购买 nike

我有一个数据框,例如:

COL1 COL2 
G1 AHA_(+)jjd
G1 6EGEGUG
G1 897E97eh
G1 77E97E
G2 8JHEJE_(-)
G2 8JHEJE_(+)
G3 TTTD
G3 YYYDD
G4 DTTDHD
G4 DYD
G5 tTDHD(+)
G6 DGDGGD

并且我想将 Gnumber 添加到仅包含包含模式 () 的 COL2 值的列表中.

她我应该得到

预期输出:
print(list)

[G2,G5]

感谢您的帮助

最佳答案

使用 Series.str.contains 带有否定掩码 ~并通过 Series.isin 测试匹配值:

#filter values with ()
m1 = df['COL2'].str.contains(('\(.*\)'))
#filter COL1 values with no ()
m2 = df.COL1.isin(df.loc[~m1, 'COL1'])

#filter values only with ()
out = df.loc[~m2, 'COL1'].unique()
print (out)
['G2' 'G5']

或使用 GroupBy.all 用于测试是否全部 True s 每组然后过滤索引值:
s = df['COL2'].str.contains(('\(.*\)')).groupby(df['COL1']).all()

out = s.index[s]
print (out)
Index(['G2','G5'], dtype='object', name='COL1')

关于python - Groupby 并提取仅包含具有模式值的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61799720/

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