使用熊猫替换列中的值时出错[重复]

Posted

技术标签:

【中文标题】使用熊猫替换列中的值时出错[重复]【英文标题】:Error replacing values in a column using pandas [duplicate] 【发布时间】:2019-02-20 07:30:06 【问题描述】:

我正在尝试用数字替换列中的值。这些是列中的唯一值:

['R2' '01' '02' 'C1']

所以我这样做了

data = pd.read_csv('file.csv')
df = pd.DataFrame(data)

df['rates'].apply('R2': 1, '01' : 2, '02' : 3, 'C1' : 4.get)

但是当我尝试在假定的替换后打印出 df['rates'] 时,我仍然得到相同的值:

['R2' '01' '02' 'C1']

这就是我的 file.csv 的样子

amount,id,rates,height
1400,4,R2,3
1389,6,R2,8
10000,1,01,13

【问题讨论】:

你能提供代码来制作你的系列吗?看起来应该可以了。 @piRSquared 我已经添加了 你还需要显示文件的内容。只有前几行。 我已经添加了@piRSquared 哦。我想我知道/交叉手指。 Apply 不会更改数据框。您需要重新分配给列 【参考方案1】:

试试map:

df['rates'].map('R2': 1, '01' : 2, '02' : 3, 'C1' : 4,inplace=True)

或者:

df['rates'] = df['rates'].map('R2': 1, '01' : 2, '02' : 3, 'C1' : 4)

实际上你的代码可以工作,但需要分配:

df['rates']=df['rates'].apply('R2': 1, '01' : 2, '02' : 3, 'C1' : 4.get)

【讨论】:

是一样的。它没有用。 df['rates'].map('R2': 1, '01': 2, '02': 3, 'C1': 4) 打印 df['rates'] @radioactive 编辑我的 哦,谢谢。它有效,我需要分配 @radioactive 很高兴我帮忙了,?

以上是关于使用熊猫替换列中的值时出错[重复]的主要内容,如果未能解决你的问题,请参考以下文章

组合替换熊猫列中的字符串[重复]

根据熊猫中多列的条件(最大值)替换列中的值

熊猫根据索引标签选择特定列中的值[重复]

使用 dplyr [重复] 有条件地将一列中的值替换为另一列中的值

如何获取熊猫数据框中的行,列中具有最大值并保留原始索引?

用列/系列中的值替换熊猫子字符串