python - 一次在多个列上执行替换的更简单方法?
问题描述
import pandas as pd
w=pd.read_csv('w.csv')
获取 CSV 的部分以将它们相加。两列需要数值转换
w["Social Media Use Score"]=w.iloc[:,[6,7,8,9,10,11,12,13,14,15,16]].sum(axis=1)
将此部分中的 Yes 或 No 切换为 1 o 0 并将它们相加,其他部分将 ABCD 切换为 1234 并求和
w['Q1'],w['Q3'],w['Q6'] = w['Q1'].map({'No': 1, 'Yes': 0}),\
w['Q3'].map({'No': 1, 'Yes': 0}),\
w['Q6'].map({'No': 1, 'Yes': 0})
w['Q2'],w['Q4'],w['Q5'],w['Q7'],w['Q8'],w['Q9'],w['Q10']=\
w['Q2'].map({'Yes': 1, 'No': 0}),\
w['Q4'].map({'Yes': 1, 'No': 0}),\
w['Q5'].map({'Yes': 1, 'No': 0}),\
w['Q7'].map({'Yes': 1, 'No': 0}),\
w['Q8'].map({'Yes': 1, 'No': 0}),\
w['Q9'].map({'Yes': 1, 'No': 0}),\
w['Q10'].map({'Yes': 1, 'No': 0})
w["Anxiety Score"]=w.iloc[:,[17,18,19,20,21,22,23,24,25,26]].sum(axis=1)
w['d1'],w['d2'],w['d3'],w['d4'],w['d5'],w['d6'],w['d7'],w['d8'],w['d9'],w['d10']=\
w['d1'].map({'A': 1, 'B': 2,'C':3,'D':4}),\
w['d2'].map({'A': 1, 'B': 2,'C':3,'D':4}),\
w['d3'].map({'A': 1, 'B': 2,'C':3,'D':4}),\
w['d4'].map({'A': 1, 'B': 2,'C':3,'D':4}),\
w['d5'].map({'A': 1, 'B': 2,'C':3,'D':4}),\
w['d6'].map({'A': 1, 'B': 2,'C':3,'D':4}),\
w['d7'].map({'A': 1, 'B': 2,'C':3,'D':4}),\
w['d8'].map({'A': 1, 'B': 2,'C':3,'D':4}),\
w['d9'].map({'A': 1, 'B': 2,'C':3,'D':4}),\
w['d10'].map({'A': 1, 'B': 2,'C':3,'D':4})
w['Depression Score']=w.iloc[:,[27,28,29,30,31,32,33,34,35,36]].sum(axis=1)
w.to_csv("foranal.csv")
解决方案
如果你想同时对多个列执行替换,你应该使用df.replace
(它比 慢map
,所以只有在你负担得起的情况下才使用它)。
# Mapping for replacement.
repl_dict = {'A':1, 'B':2,'C':3, 'D':4}
repl_dict.update({'Yes':1, 'No':0})
# Generate the list of columns to perform replace on.
cols = [f'{x}{y}' for x in ('Q','d') for y in range(1, 11)]
w[cols] = w[cols].replace(repl_dict)
# Fix values for special columns.
w.loc[:, ['Q1', 'Q3', 'Q6']] = 1 - w.loc[:, ['Q1', 'Q3', 'Q6']]
“社交媒体使用分数”和“焦虑分数”很好。
推荐阅读
- geospatial - 将 rioxarray 剪辑到 shapefile 时出现 CRS 错误
- html - 如何强制 flexbox 中的 div 不展开?
- go - 如何使用 gin 作为服务器来编写 prometheus 导出器指标
- java - 如何使用 javax.xml.bind.annotation 在 java 中添加空白命名空间
- swiftui - SwiftUI 在列表的单元格视图中更新observedObject
- nginx - Nginx - 反向代理所有以关键字开头的请求
- swift - 当我的文档目录中没有可用数据时,想要快速向用户显示一条消息
- delphi - 在父窗体中访问子窗体继承的控件
- sharepoint - 在 webpart 之间共享 node_modules
- azure-sql-database - Azure Synapse - 无法创建外部表错误 401 未经授权