python - 逐行解析数据帧
问题描述
我有一个数据框,它有 5 列,分别命名为 '0'、'1'、'2'、'3'、'4'
small_pd
Out[53]:
0 1 2 3 4
0 93.0 94.0 93.0 33.0 0.0
1 92.0 94.0 92.0 33.0 0.0
2 92.0 93.0 92.0 33.0 0.0
3 92.0 94.0 20.0 33.0 76.0
我想逐行使用上面的输入来提供执行以下操作的函数。我以第一行和第二行为例
第一排:
takeValue[0,0]-takeValue[0,1]+takeValue[0,2]-takeValue[0,3]+takeValue[0,4]
第二排:
takeValue[1,0]-takeValue[1,1]+takeValue[1,2]-takeValue[1,3]+takeValue[1,4]
从第三行开始,然后将所有这些结果分配为额外的列。
small_pd['extracolumn']
有没有办法避免python中典型的for循环并以更好的方式做到这一点?
你能给我建议吗?非常感谢亚历克斯
解决方案
您可以使用pd.apply
df = pd.DataFrame(data={"0":[93,92,92,92],
"1":[94,94,93,94],
"2":[93,92,92,20],
"3":[33,33,33,33],
"4":[0,0,0,76]})
def calculation(row):
return row["0"]-row["1"]+row["2"]-row["3"]+row["4"]
df['extracolumn'] = df.apply(calculation,axis=1)
print(df)
0 1 2 3 4 result
0 93 94 93 33 0 59
1 92 94 92 33 0 57
2 92 93 92 33 0 58
3 92 94 20 33 76 61
推荐阅读
- python - 代码在 Jupiter 笔记本中有效,但在终端中不能作为 .py 文件使用
- php - 在 PHP OOP 中上传时压缩 png 和 jpg 图像
- java - lock.tryLock() 线程安全吗?
- java - 如何判断 Spring 中是否启用了“异步”
- android - 当用户在测验中对我的问题给出正确答案时,创建一个带有下一步按钮的弹出窗口
- javascript - 无法在 App Bar Material UI 下对齐排版
- python - 如何在 Python 中将用户输入格式化为 f 字符串?
- django - 如何在 Azure 的 Kudu 中将可执行文件添加到 PATH?
- database - SQL 与 NoSQL 数据库,用于存储来自移动传感器(GPS、加速度计等)的用户数据
- python - 如何限制 django 数据库中的条目数?使用默认数据库(sqlite3)