首页 > 解决方案 > 如何用 df1 替换 df 列名

问题描述

我有 2 个具有相同数量列的 dfs,但是,它们有 2 种不同的命名约定,因为我从 2 个不同的地方获取数据。我希望 df_cont 具有与 df1 相同的列名。

我知道我可以这样做:

df_cont.rename({'bitcoin':'BTC'}, axis='columns')

但这需要很长时间,因为我有很多专栏。

我试着做:

df_cont = df_cont.rename(columns = df1.columns, inplace = True)

但这会引发错误。根据 pandas 文档,它看起来希望我给出索引标签,但是 2 个 df 具有不同的时间序列长度。


df1
    btc  eth  ltc 


df_cont
    bitcoin ethereum litcoin

预期的:

df_cont
    btc   eth  ltc

标签: pythonpandas

解决方案


通过以下方式设置列名df1.columns

df_cont.columns = df1.columns

样品

df1 = pd.DataFrame([[1,2,3]], columns=['btc', 'eth', 'ltc'])
print (df1)
   btc  eth  ltc
0    1    2    3

df_cont = pd.DataFrame([[11,22,33]], columns=['bitcoin', 'ethereum', 'litcoin'])   
print (df_cont)
   bitcoin  ethereum  litcoin
0       11        22       33

df_cont.columns = df1.columns
print (df_cont)
   btc  eth  ltc
0   11   22   33

推荐阅读