gpt4 book ai didi

python - 是否可以列出合并失败的数据框中的值?

转载 作者:太空宇宙 更新时间:2023-11-04 03:02:58 25 4
gpt4 key购买 nike

我正在成功合并两个数据框,但我还想查看合并失败的那些值。目的是验证合并后我是否拥有所有正确的值。是否可以将它们转储到列表或更好的是转储到另一个数据框?

在下面的代码示例中; 'company_f' 合并失败,所以这是我需要查看的记录。

import pandas as pd

data1 = pd.DataFrame({'id': ['a12bcde0','b20bcde9'], 'title': ['company_a','company_b']})

data2 = pd.DataFrame({'serial_number': ['01a2b345','10ab2030','40ab4060'],'title':['company_a','company_b (123)','company_f']})

data2['title'].replace(regex=True,inplace=True,to_replace=r"\s\(.*\)",value=r'')

pd.merge(data1, data2, on='title')

最佳答案

Numpy 解决方案 numpy.setxor1d :

print (np.setxor1d(data1.title,data2.title))
['company_f']

我认为您可以使用带参数 indicator 的外连接,然后按 boolean indexing 过滤:

df = pd.merge(data1, data2, on='title', how='outer', indicator=True)

df1 = df[df._merge == 'both']
print (df1)
id title serial_number _merge
0 a12bcde0 company_a 01a2b345 both
1 b20bcde9 company_b 10ab2030 both

print (df1.drop('_merge', axis=1))
id title serial_number
0 a12bcde0 company_a 01a2b345
1 b20bcde9 company_b 10ab2030

print (df[df._merge != 'both'])
id title serial_number _merge
2 NaN company_f 40ab4060 right_only

L = df.ix[df._merge != 'both', 'title'].tolist()
print (L)
['company_f']

关于python - 是否可以列出合并失败的数据框中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40405821/

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