gpt4 book ai didi

python - Pandas 在多列上搜索子字符串

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

我有一个 df 这样的

       c_name  f_name 
0 abc abc12
1 xyz abc1
2 mnq mnq2

目标是在两列中找到一个子字符串,并知道它属于哪一列。首选应该是 c_name,因为如果子字符串在两列中,则 c_name 获得优先权 例如:如果我在中搜索 abc上面的数据框我应该以某种方式获得 c_name 的第 0 行 abcf_name 的第 1 行 abc1

为了解决这个问题,我开始df[df['c_name'].str.contains('abc', case=False)]这将为我提供 c_name 的结果。现在的问题是如何从对 f_name 执行相同的操作时排除我已有结果的行。任何帮助是极大的赞赏!

最佳答案

import pandas as pd
row =[['abcx','abcy'],
['efg','abcz'],
['higj','UK']]
df= pd.DataFrame(row)
df.columns = ['c_name', 'f_name']

print df[df['c_name'].str.contains('abc', case=False)]

delta_df =df[~df['c_name'].str.contains('abc', case=False)]
print delta_df[delta_df['f_name'].str.contains('abc', case=False)]

输出

  c_name f_name
0 abcx abcy
c_name f_name
1 efg abcz

关于python - Pandas 在多列上搜索子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41704139/

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