pandas - 替换数据框中的值不在循环中工作
问题描述
我正在运行以下代码以用字符串替换数字(来自调查的标签)。代码末尾的命令行正在运行,但是当我尝试创建循环时,值不再被替换。
import pandas as pd
# Create a test data frame
df =pd.DataFrame([{'Q1_2':1,'Q1_3':4},{'Q1_2':1,'Q1_3':4},{'Q1_2':1,'Q1_3':4},{'Q1_2':1,'Q1_3':4}])
dfCategorical = {'Q1_2':'studylevel',
'Q1_3':'studyfield'}
studylevel = {1:'Undergraduate (Bachelor level)',
2:'Graduate (Master level)',
3:'PhD',
4:'Other (e.g., MBA)'}
studyfield = {1:'Arts / Humanities (e.g., cultural studies, history, linguistics, philosophy, religion)',
2:'Business / Management',
3:'Computer sciences / IT',
4:'Economics',
5:'Engineering (incl. architecture)',
6:'uman medicine / health sciences',
7:'Law',
8:'Mathematics',
9:'Natural sciences',
10:'Science of art (e.g., art, design, dramatics, music)',
11:'Social sciences (e.g., psychology, politics, education)',
12:'Other'}
for key, value in dfCategorical.items():
print(key,value)
df.loc[:,key] = df.loc[:,key].replace(value)
但是 df 中的值不会被替换。感谢您帮助我解决此问题。
解决方案
您是否尝试这样做(或类似的)...
从:
Q1_2 Q1_3
0 1 4
1 1 4
2 1 4
3 1 4
至:
df.replace({'Q1_2': studylevel}).replace({'Q1_3': studyfield})
Q1_2 Q1_3
0 Undergraduate (Bachelor level) Economics
1 Undergraduate (Bachelor level) Economics
2 Undergraduate (Bachelor level) Economics
3 Undergraduate (Bachelor level) Economics
或者...
print(df.replace({'Q1_2': studyfield}).replace({'Q1_3': studyfield}))
Q1_2 Q1_3
0 Arts / Humanities (e.g., cultural studies, his... Economics
1 Arts / Humanities (e.g., cultural studies, his... Economics
2 Arts / Humanities (e.g., cultural studies, his... Economics
3 Arts / Humanities (e.g., cultural studies, his... Economics
如果是这样,并保持更改添加df =
到命令的左侧,以将它们分配回原始数据帧。
推荐阅读
- github-actions - github操作,构建docker镜像,根据分支名称设置名称
- c - fprintf 和 stdout 的整体效率
- amazon-web-services - aws 胶水`ImportError:无法导入名称'S3ArnParamHandler'`
- react-native - React Native - ExpoPixi:非法调用
- php - 使用 symfony 命令发送邮件时嵌入图像不可读
- typescript - TypeScript:将输入类型 T 映射到树状类型
- amazon-web-services - 获取“InvalidAccessKeyId:您提供的 AWS 访问密钥 ID 在我们的记录中不存在。” 更新放大用户 IAM 密钥后
- powershell - PowerShell中有输入输出功能吗?
- r - 根据位置改变特定列
- pine-script - pinescript 中未声明的标识符错误