gpt4 book ai didi

python - 如何获取 Pandas DataFrame 中 2 个列表的差异?

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

我是 python Pandas 新手。我在寻找 Pandas DataFrame 中 2 个列表的差异时遇到了问题。

使用 ; 分隔符的输入示例:

ColA; ColB  
A,B,C,D; B,C,D
A,C,E,F; A,C,F

预期输出:

ColA; ColB; ColC  
A,B,C,D; B,C,D; A
A,C,E,F; A,C,F; E

我想做的事情类似于:

df['ColC'] = np.setdiff1d(df['ColA'].str.split(','), df['ColB'].str.split(','))

但它返回一个错误:

raise ValueError('Length of values does not match length of index',data,index,len(data),len(index))

请多多指教

最佳答案

您可以在 DataFrame 上应用 lambda 函数来查找差异,如下所示:

import pandas as pd

# creating DataFrame (can also be loaded from a file)
df = pd.DataFrame([[['A','B','C','D'], ['B','C']]], columns=['ColA','ColB'])

# apply a lambda function to get the difference
df['ColC'] = df[['ColA','ColB']].apply(lambda x: [i for i in x[0] if i not in x[1]], axis=1)

请注意!这将找到不对称差异 ColA - ColB

结果:

difference of two lists pandas

关于python - 如何获取 Pandas DataFrame 中 2 个列表的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56986689/

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