用不带引号的引号替换列名

时间:2020-05-14 22:53:06

标签: python pandas

我试图替换带有引号的列名,只是删除引号,但是当我尝试这样做时:

for x in df.columns:
    x = x.replace('"', '')
    print(x)

什么也没有发生,报价仍然存在。

3 个答案:

答案 0 :(得分:3)

我会做这样的事情

cols = [column_name.replace('"','') for column_name in df.columns] 
df.columns = cols

CODE

import pandas as pd
df=pd.DataFrame({"a":[1,2],'"b"':[3,4]})
print('BEFORE')
print(df)
cols = [column_name.replace('"','') for column_name in df.columns] 
df.columns = cols
print('AFTER')
print(df)

输出

BEFORE
   a  "b"
0  1    3
1  2    4
AFTER
   a  b
0  1  3
1  2  4

答案 1 :(得分:0)

您可以通过编写以下代码将其删除:

col=[]
for x in df.columns:
    x = x.replace('"', '')
    col.append(x)

df.columns=col

要了解有关列重命名的更多信息:选中此Renaming columns in pandas

答案 2 :(得分:0)

对此问题的一种典型解决方案是直接在标头上使用熊猫str.replace(这是“矢量化的”):

df = pd.DataFrame({"a": [1, 2], '"b"': [3, 4]})
df.columns = df.columns.str.replace('"', '')

df

   a  b
0  1  3
1  2  4
相关问题