为了账号安全,请及时绑定邮箱和手机立即绑定

用文本替换特定列

用文本替换特定列

万千封印 2023-06-27 16:07:56
我有 2 个文档,一个包含特定数字,另一个文档包含数字引用以及由管道分隔的该数字的定义。然而,第一个文档有时包含多个数字,这意味着它比另一个文档有更多的列,而另一个文档只有 2 个。我尝试将它与“on”参数合并,通过“for 循环”更改列名称"并在每次迭代后再次保存合并的文档。问题是它删除了没有指定列数的行。有限制_n1-16 等列。def merge_res(number, last_iter=None):    res_n = f"restrict_n{number}"    res_d = f"restrict_d{number}"    if number == 1:        restrict_desc_csv = pd.read_csv(            RESTRICTION_DESC,            sep="|",            delimiter="|",            header=None,            names=["restrict_n1", "restrict_d1",],            dtype=object,        )        merge = restrict_csv.merge(restrict_desc_csv, on="restrict_n1")    else:        restrict_desc_csv = pd.read_csv(            RESTRICTION_DESC,            sep="|",            delimiter="|",            header=None,            names=[res_n, res_d],            dtype=object,        )        merge = last_iter.merge(restrict_desc_csv, on=res_n)    return mergelast_iter = merge_res(1)for i in range(2, 15):    last_iter = merge_res(i, last_iter)
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

我不会给出完整的代码,因为编写起来并不难。只需按照您在问题中所描述的方式编写,只需指定参数 how (即pandas.DataFrame.merge)。默认情况下inner会导致丢失行,因为它仅合并两个数据帧中都存在的行。根据您对问题的描述,您需要进行设置how='left'



查看完整回答
反对 回复 2023-06-27
  • 1 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信