如何修复熊猫列名以仅显示列名而不是 tablename.columnname

Posted

技术标签:

【中文标题】如何修复熊猫列名以仅显示列名而不是 tablename.columnname【英文标题】:how to fix pandas column name to show only columnname instead of tablename.columnname 【发布时间】:2021-03-09 23:06:22 【问题描述】:

当我在 pandas 中加载数据时,df 的列显示为

tablename.columnname1 | tablename.columnname2 | tablename.columnname3| ..... | tablename.columnnameN

如何让它只显示为

columnname1 | columnname2 | columnname3| ..... | columnnameN

数据是在 pyspark 上处理的,最初是从 hive 中检索的。当我在 pyspark 上显示 df 时,列名显示正常,前面没有表名。

该过程完成后,再次将其写入 hive 中的模式,作为 schemaname.tablename

当我将它下载到本地并输入 pandas 时,所有列名都显示为

表名.列名

我有大约 1000 个特征

【问题讨论】:

【参考方案1】:

除了string.replace,还可以使用rename方法来删除字符串"tablename."

制作虚拟数据

df = pd.DataFrame([[1,2,3],[4,5,6]], columns=["tablename.col1", "tablename.col2", "tablename.col3"])

print(df)
   tablename.col1  tablename.col2  tablename.col3
0               1               2               3
1               4               5               6

使用重命名方法

new_df = df.rename(columns=lambda name: name.replace("tablename.", ""))

print(new_df)
   col1  col2  col3
0     1     2     3
1     4     5     6

【讨论】:

以上是关于如何修复熊猫列名以仅显示列名而不是 tablename.columnname的主要内容,如果未能解决你的问题,请参考以下文章

Python:我有具有相同列名的熊猫数据框。如何改变其中之一?

如何仅从 csv 文件(熊猫)加载列名?

如何在熊猫数据框中插入列名? [复制]

如何使用一系列列名从熊猫数据框中获取系列?

如何将具有特殊字符的列名别名为具有下划线而不是特殊字符的新列名?

熊猫重命名多级查找列名[重复]