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

Ved*_*ger 5 python rename pandas

我使用以下代码合并了两个 Pandas 系列:

HS4_Tariffs_16=pd.concat([df_tariff_HS4_16_PT,df_tariff_HS4_16_MFN],axis=1)
Run Code Online (Sandbox Code Playgroud)

如果您想知道为什么我使用 concat 代替合并,那么在我使用合并时会出现错误“系列”对象没有属性“合并”。所以无论如何,我使用 concat 合并了两个系列,这导致了一个数据帧。此后,我使用以下代码重置索引:

HS4_Tariffs_16.reset_index()
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用代码重命名列时,真正的问题出现了:

HS4_Tariffs_16=HS4_Tariffs_16.rename(columns={'ProductCode':'HSCode'})
Run Code Online (Sandbox Code Playgroud)

它没有重命名列,而是将列转换为索引。输出是这样的:

      Preferential tariff for APTA countries    MFN duties (Applied)
ProductCode         
101     0.3     0.3
102     0.3     0.3
103     0.3     0.3
104     0.3     0.3
105     0.3     0.3
...     ...     ...
9702    0.1     0.1
9703    0.1     0.1
9704    0.0     0.0
9705    0.1     0.1
9706    0.1     0.1

1224 rows × 2 columns
Run Code Online (Sandbox Code Playgroud)

如果我想要的最终结果是一个名为“ProductCode”的列重命名为“HSCode”的数据框,你能告诉我我需要更正代码的哪一部分。

use*_*467 0

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

HS4_Tariffs_16.rename(columns={'ProductCode':'HSCode'}, inplace=True)
Run Code Online (Sandbox Code Playgroud)