我试图替换带有引号的列名,只是删除引号,但是当我尝试这样做时:
for x in df.columns:
x = x.replace('"', '')
print(x)
什么也没有发生,报价仍然存在。
答案 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