【问题标题】:Comparing two arrays element wise in pandas比较熊猫中的两个数组元素
【发布时间】:2022-09-27 22:10:39
【问题描述】:

我有两个数据框。 我的最终目标是比较两个数据框中的列并返回那些彼此不匹配的值 例子:

df_1[\"column_1\"]= [\"A45\", \"kl24\", \"mhg\", \"tz22\" ]
df_2[\"column_2\"]= [\"KL24\", \"tz22\", \"mhg\", \"A 45\"]

我需要一个代码来比较相应数据帧[\"column\"] 中的两个数组值,并从 df_1 返回那些在 df_2 中不匹配的值(例如:从我们的示例中 \"A45\" 和 \"kl24\" 将return 因为有空格和大小写错误)

谁能帮我解决这个问题!

  • 我的回答对你有用吗?
  • @TCMolenaar。首先非常感谢您的回答。我会在一小时内试一试。目前忙于其他事情
  • @TCMolenaar -Hi \"df = df_1.merge(df_2, how=\'outer\', left_on=\'column_1\', right_on=\'column_2\', indicator=True)\" 我收到内存错误对于这一步。也许我的笔记本电脑不够强大,无法处理它。你能告诉我另一种方法吗?
  • MemoryError:无法为形状为 (7, 198409634) 且数据类型为 float64 的数组分配 10.3 GiB
  • 试试how=\'left\'

标签: python pandas dataframe


【解决方案1】:

使用pd.merge(..., how='left', indicator=True) 并选择带有left_only 的行:

>>> df = df_1.merge(df_2, how='outer', left_on='column_1', right_on='column_2', indicator=True)
>>> df
  column_1 column_2      _merge
0      A45      NaN   left_only
1     kl24      NaN   left_only
2      mhg      mhg        both
3     tz22     tz22        both
4      NaN     KL24  right_only
5      NaN     A 45  right_only
>>> df[df._merge == 'left_only']['column_1']
0     A45
1    kl24
Name: column_1, dtype: object

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    相关资源
    最近更新 更多