gpt4 book ai didi

python - Pandas - pd.merge,添加检查以确保列不存在?

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

我有两个数据框,一个是我使用的主要数据框,另一个是我想从中引入信息的辅助数据框。

df1(主要)包含一个带有各种名称字符串的 Reporter 列。

df2(附加信息)包含报告者姓名及其位置。

我想将位置列添加为 df1 中的新列。

我可以一次性完成以下操作:

df1 = pd.merge(df1, df2, on='Reporter', how='left')

它有效。

我的问题是我运行了一个频繁更新的脚本(检查新行并检查旧行的更新)并重复运行这行代码,每次执行都会添加多个列。

  • 仅检查列是否存在的问题是新行(包含新报告者姓名)可能已添加到我确实想知道/更新其位置的 df。

  • 我的做法是否正确?还是我应该进行某种字典查找并每次有条件地映射位置?我怎样才能在 Pandas 中做到这一点?

最佳答案

对于单个系列,我通常更喜欢映射系列而不是 mergejoin(如果使用正确,这两个选项也是有效的)。

请注意,我假设您已经适本地将 str 转换应用于所有列。

s = df2.set_index('Reporter')['Reporter Location']

df['Reporter Location'] = df['Reporter'].map(s)

通常,不需要将您的系列转换为 dict 或在 pd.Series 对象上使用 zip。将 zipnumpy 数组一起使用 can be inefficient .

关于python - Pandas - pd.merge,添加检查以确保列不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50691189/

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