假设我有以下数据:

dfData = pd.DataFrame({
    'A1':['1','2'],
    'B1':['1','2'],
    'C1':['1','2'],
    'D1':['1','2']
    })
print(dfData)
A1 B1 C1 D1
0 1 1 1
1 2 2 2

我设置了以下 map :

dfMap = pd.DataFrame({
    'dfDataCol':['A1','B1','C1',''],
    'NewCol'   :['A2','B2','C2','D2']
    })
print(dfMap)
dfDataCol NewCol
A1 A2
B1 B2
C1 C2

我将其转换为词典,并将名称映射为:

dict1 = dfMap.set_index('dfDataCol').to_dict()['NewCol']
dfData.columns = dfData.columns.map(dict1)

我得到了:

A2 B2 C2 NaN
0 1 1 1
1 2 2 2

如果没有词典条目,如何保留原始标题:

A2 B2 C2 D1
0 1 1 1
1 2 2 2

推荐答案

try :

dfData = dfData.rename(columns=dict1)

print(dfData)

打印:

  A2 B2 C2 D1
0  1  1  1  1
1  2  2  2  2

Python相关问答推荐

键盘.任务组

将从Python接收的原始字节图像数据转换为C++ Qt QIcon以显示在QStandardProject中

Python无法在已导入的目录中看到新模块

跟踪我已从数组中 Select 的样本的最有效方法

Python中使用时区感知日期时间对象进行时间算术的Incredit

Locust请求中的Python和参数

使用numpy提取数据块

为什么带有dropna=False的groupby会阻止后续的MultiIndex.dropna()工作?

如何列举Pandigital Prime Set

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

如何创建一个缓冲区周围的一行与manim?

SQLAlchemy Like ALL ORM analog

在含噪声的3D点网格中识别4连通点模式

为一个组的每个子组绘制,

如何在turtle中不使用write()来绘制填充字母(例如OEG)

如何启动下载并在不击中磁盘的情况下呈现响应?

如何禁用FastAPI应用程序的Swagger UI autodoc中的application/json?

Tkinter菜单自发添加额外项目

如何使用Numpy. stracards重新编写滚动和?

Maya Python脚本将纹理应用于所有对象,而不是选定对象