使用 Pandas DataFrame 重命名列值

tbo*_*one 7 python dataframe python-3.x pandas

在我的数据框中的一列中,我有五个值:

1,G,2,3,4
Run Code Online (Sandbox Code Playgroud)

如何使它将所有“G”的名称更改为 1

我试过:

df = df['col_name'].replace({'G': 1})
Run Code Online (Sandbox Code Playgroud)

我也试过:

df = df['col_name'].replace('G',1)
Run Code Online (Sandbox Code Playgroud)

“G”其实就是1(不知道为什么会有混合命名)

编辑:

正常工作:

df['col_name'] = df['col_name'].replace({'G': 1})
Run Code Online (Sandbox Code Playgroud)

add*_*ted 8

如果我正确理解您的问题,那么您正在尝试更改列中的值而不是列名本身。

鉴于您在那里有混合数据类型,我假设列是类型object,因此数字被读取为字符串。

df['col_name'] = df['col_name'].str.replace('G', '1')
Run Code Online (Sandbox Code Playgroud)

  • OP 的 df['col_name'].replace({'G': 1})` 方法没有理由不起作用。`df['col_name'].str.replace('G', '1'))` 没有什么神奇之处。这是对数据框的分配被搞乱了。 (2认同)