python - 使用 pandas 替换列中的值时出错
问题描述
我正在尝试用数字替换列中的值。这些是列中的唯一值:
['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
解决方案
尝试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)
推荐阅读
- react-native - 我想从没有expo方法的react native开始..我发现了这个错误
- git - 列出 repo 项目的所有 git 子项目中的所有分支
- python - 在 Python 中使用完全可定制的箭头创建流场
- java - Eclipse 和 MySQL 之间的连接出现错误
- docker - 如何将 docker 镜像中的数据与 kubernetes 卷(NFS)合并
- javascript - 过滤掉 null 或未定义的属性
- c# - fileapi.h 中 Readfile() 的非阻塞替代方案?C#
- mysql - 如何在 X 个月前创建用户?
- python - 如何将 3 个数据帧与 python 中的某个阈值对齐?
- c# - 为什么我的 KendoUI Grid Sort 不能在我的 ASP.NET Core 应用程序中?