Pandas替换所有列名中的字符

Ced*_* H. 22 python pandas

我有列名的数据帧包含(从.csv档案来推出)()我想,以取代他们_.

我怎样才能为所有列做到这一点?

jez*_*ael 38

用途str.replace:

df.columns = df.columns.str.replace("[()]", "_")
Run Code Online (Sandbox Code Playgroud)

样品:

df = pd.DataFrame({'(A)':[1,2,3],
                   '(B)':[4,5,6],
                   'C)':[7,8,9]})

print (df)
   (A)  (B)  C)
0    1    4   7
1    2    5   8
2    3    6   9

df.columns = df.columns.str.replace(r"[()]", "_")
print (df)
   _A_  _B_  C_
0    1    4   7
1    2    5   8
2    3    6   9
Run Code Online (Sandbox Code Playgroud)

  • @Seymour 表示部分或全部数字列,因此需要`df.columns = df.columns.astype(str).str.replace("[()]", "_")` (2认同)
  • 很好的答案。谢谢。只是好奇为什么“[()]”部分的“[]”?我尝试了一下,但不起作用。你能告诉我在这种情况下“[]”做什么吗? (2认同)