python - 在熊猫数据框中重命名时找不到列
问题描述
我有这个熊猫数据框
timestamp EG2021 EGH2021
2021-01-04 33 Nan
2021-02-04 45 65
我正在尝试用新名称替换列名,就像在这样的 excel 文件中映射的那样
OldId NewId
EG2021 LER_EG2021
EGH2021 LER_EGH2021
我尝试了下面的代码,但它不起作用我得到错误
KeyError:“[索引(['LER_EG2021',LER_EGH2021'],\n
dtype ='object',长度= 186)]中没有[列]
代码:
df = pd.ExcelFile('ids.xlsx').parse('Sheet1')
x=[]
x.append(df['external_ids'].to_list())
dtest_df = (my panda dataframe as mentioned above)
mapper = df.set_index(df['oldId'])[df['NewId']]
dtest_df.columns = dtest_df.columns.Series.replace(mapper)
知道我在做什么错吗?
解决方案
你需要:
mapper = df.set_index('oldId')['NewId']
dtest_df.columns = dtest_df.columns.map(mapper.to_dict())
或者:
dtest_df = dtest_df.rename(columns=df.set_index('oldId')['NewId'].to_dict())
dtest_df
输出:
timestamp LER_EG2021 LER_EGH2021
0 2021-01-04 33 NaN
1 2021-02-04 45 65
推荐阅读
- c - 在c中的静态库中定义值
- python - 特定单词的自定义颜色:sublimetext
- c# - 是否可以创建一个将方法组作为参数的通用方法
- flutter - Getx Flutter中的重复全局键
- c# - 使用实体框架单击按钮后解决 Datagridview 重新加载?
- javascript - 使用 html 和 javascript 创建一个阅读更多按钮
- sql - 如何在 SQL Server 中根据百分比获取表数据?
- ios - 点击注销时 SwiftUI 将应用程序重置为登录屏幕
- arrays - 使用 powershell 将 Azure DevOps 变量设置为 int 而不是 string
- android - 在模块 jetified-com.google.zxing.client.android.captureactivity.jar 和 jetified-core-3.3.3.jar 中发现重复的类 com.google.zxing.Binarizer