在Pandas中,有没有一种方法可以将.rename()应用于数据帧的已过滤子集?

时间:2020-05-05 16:28:59

标签: python pandas

我有一个数据框df,具有标准的宽格式:

df: 
     'state' | 'population' | 'region'
0    'CA'    | 10000        | 'west' 
1    'UT'    | 6000         | 'west'
2    'NY'    | 8500         | 'east'

我需要能够重命名state列中与我设置的某些条件匹配的某些值。例如,如果区域变量匹配“东”,我需要将“ NY”的情况重命名为“ New York”。我想避免将数据框切片和连接在一起。

我尝试使用下面的代码对数据框进行子集设置,但重命名似乎无法正确应用。

 region_filter = df['region'] == 'east'
 df[region_filter] = df.loc[region_filter, 'state'].rename({'NY': 'New York'})

1 个答案:

答案 0 :(得分:0)

仅在尝试更改轴标签时才应应用重命名。熊猫的replace()函数用于映射数据框值。

此外,第二行应读为df.loc[region_filter, 'state'] = df.loc[region_filter, 'state'].rename({'NY': 'New York'}),以避免形状不匹配错误。