为什么我不能重命名列?

ge0*_*rge 6 python pandas

我有以下df:

          TAN.SK    SHA.LO
A         0.05      0.01   
S         0.04      0.44
D         0.08     -0.18
Run Code Online (Sandbox Code Playgroud)

我希望新的df如下:

          TAN        SHA
A         0.05      0.01   
S         0.04      0.44
D         0.08     -0.18
Run Code Online (Sandbox Code Playgroud)

基本上从列名中删除.SK.LO

这是我尝试过的:

df.rename(columns=lambda x: x.split('.')[0])

df.columns=df.split('.')[0]
Run Code Online (Sandbox Code Playgroud)

第二种情况适用于 df.index

Max*_*axU 6

DataFrame.rename()不会更改DataFrame(默认情况下),因此您必须将其分配回来:

In [134]: df = df.rename(columns=lambda x: x.split('.')[0])

In [135]: df
Out[135]:
    TAN   SHA
A  0.05  0.01
S  0.04  0.44
D  0.08 -0.18
Run Code Online (Sandbox Code Playgroud)

要么

In [139]: df.rename(columns=lambda x: x.split('.')[0], inplace=True)

In [140]: df
Out[140]:
    TAN   SHA
A  0.05  0.01
S  0.04  0.44
D  0.08 -0.18
Run Code Online (Sandbox Code Playgroud)