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

在 Pandas 中合并数据后重命名列

在 Pandas 中合并数据后重命名列

慕标琳琳 2023-09-26 14:40:15
我有两个 Pandas 系列,我使用以下代码合并它们:HS4_Tariffs_16=pd.concat([df_tariff_HS4_16_PT,df_tariff_HS4_16_MFN],axis=1)如果您想知道为什么我使用 concat 代替合并,那么当我使用合并时会出现错误“Series”对象没有属性“merge”。所以无论如何,我使用 concat 合并了两个系列,从而生成了一个数据帧。此后,我使用以下代码重置索引:HS4_Tariffs_16.reset_index()现在,当我尝试使用代码重命名列时,真正的问题出现了:HS4_Tariffs_16=HS4_Tariffs_16.rename(columns={'ProductCode':'HSCode'})它没有重命名列,而是将列转换为索引。输出是这样的:      Preferential tariff for APTA countries    MFN duties (Applied)ProductCode         101     0.3     0.3102     0.3     0.3103     0.3     0.3104     0.3     0.3105     0.3     0.3...     ...     ...9702    0.1     0.19703    0.1     0.19704    0.0     0.09705    0.1     0.19706    0.1     0.11224 rows × 2 columns如果我想要的最终结果是一个名为“ProductCode”的列重命名为“HSCode”的数据框,您能告诉我需要更正代码的哪一部分吗?
查看完整描述

5 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

您可以尝试以下两种可能的解决方案:

HS4_Tariffs_16 = HS4_Tariffs_16.reset_index().rename(columns={"ProductCode": "HSCode"})

或者

HS4_Tariffs_16.reset_index(inplace=True) 
HS4_Tariffs_16.rename(columns={"ProductCode": "HSCode"}, inplace=True)


查看完整回答
反对 回复 2023-09-26
?
智慧大石

TA贡献1946条经验 获得超3个赞

您可以使用该rename_axis方法更改索引列的名称。这可以避免更改数据和添加可能不必要的新索引列。


HS4_Tariffs_16.rename_axis(index={'ProductCode':'HSCode'}, inplace=True)

您还可以使用圆括号一步完成此操作,以获得更清晰的代码:


HS4_Tariffs_16 = (

    pd.concat([df_tariff_HS4_16_PT, df_tariff_HS4_16_MFN], axis=1)

    .rename_axis(index={'ProductCode':'HSCode'})

)


查看完整回答
反对 回复 2023-09-26
?
狐的传说

TA贡献1804条经验 获得超3个赞

这应该有效


df=df.rename({'Old_name' : 'New_name'}, axis=1)


In your case 


HS4_Tariffs_16= HS4_Tariffs_16.rename({'ProductCode':'HSCode'}, axis=1)

或者您可以使用您想要的名称创建一个副本,然后删除原始名称:


df['renamed']=df['oldname'].copy()

df= df.drop('oldname', axis=1)


查看完整回答
反对 回复 2023-09-26
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

我认为当您重置索引时就会出现问题。尝试这个:

HS4_Tariffs_16.reset_index(drop = True)


查看完整回答
反对 回复 2023-09-26
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

以下方法可能无需重置索引即可工作。当您重命名列时,它可能会将其设置为索引,因为您将框架重命名为本身,而 Pandas 有时会很奇怪!

HS4_Tariffs_16.rename(columns={'ProductCode':'HSCode'}, inplace=True)


查看完整回答
反对 回复 2023-09-26
  • 5 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

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