在我的数据框中的一列中,我有五个值:
1,G,2,3,4
如何使所有"G"的名称更改为1我尝试过:
df = df['col_name'].replace({'G': 1})
我也尝试了:
df = df['col_name'].replace('G',1)
"实际上,“G”是1(我不知道为什么会有混合命名)
编辑:
使用以下内容可以正常工作:
"df['col_name'] = df['col_name'].replace({'G': 1})
在我的数据框中的一列中,我有五个值:
1,G,2,3,4
如何使所有"G"的名称更改为1df = df['col_name'].replace({'G': 1})
我也尝试了:
df = df['col_name'].replace('G',1)
"实际上,“G”是1(我不知道为什么会有混合命名)
编辑:
使用以下内容可以正常工作:
"df['col_name'] = df['col_name'].replace({'G': 1})
如果我正确理解您的问题,您正在尝试更改列中的值而不是列名本身。
鉴于您那里有混合数据类型,我假设该列的类型为object
,因此数字被读取为字符串。
df['col_name'] = df['col_name'].str.replace('G', '1')
df.replace('G', 1, inplace=True)
使用numpy
import numpy as np
df['a'] = np.where((df.a =='G'), 1, df.a)
你可以尝试这个,假设你的数据是这样的:
ab=pd.DataFrame({'a':[1,2,3,'G',5]})
然后你将把它替换为:
ab1=ab.replace('G',4)
df['col_name'].replace({'G': 1})
是正确的做法。您只需要适当地将其重新分配给数据框。df['col_name'] = df['col_name'].replace({'G': 1})
或者df.update(df['col_name'].replace({'G': 1}))
或者df = df.assign(col_name=df['col_name'].replace({'G': 1}))
- piRSquared