python - 如何在列之间执行划分并将答案存储在新的数据框中
问题描述
我刚开始学习使用 python 编程,我正在尝试解决如何巧妙地执行列之间的划分。
我有一个如下的数据框: 数据框 A
列中的数字(例如 101)是主题 ID。我想将 101-A-5 列中的值除以 101-A-4 列中的值并将答案存储在数据框 B 中: 数据框 B
我想对所有主题 ID 重复该过程。(在示例中我只包括了三个,但在实际数据中有 10 个)总而言之,我想做
{subject_id}-A-5 / {subject_id}-A-4
。
有没有聪明的方法来做到这一点?
解决方案
您可以列出所有内容subject_ids
,然后将列划分应用于每个主题 ID
import random
import pandas as pd
df = pd.DataFrame({
"101-A-4":random.sample(range(0,100),100),
"101-A-5":random.sample(range(0,100),100),
"102-A-4":random.sample(range(0,100),100),
"102-A-5":random.sample(range(0,100),100)
})
data = {}
subject_ids = ["101","102"]
for i in subject_ids:
data[i] = df[f"{i}-A-5"]/df[f"{i}-A-4"]
new_df = pd.DataFrame(data)
这使:
101 102
0 0.516854 2.307692
1 0.683544 2.222222
2 0.289474 0.073529
3 1.812500 3.478261
4 2.800000 0.085714
.. ... ...
95 1.695652 0.666667
96 0.666667 2.714286
97 0.897059 0.222222
98 0.447368 1.540541
99 2.742857 0.444444
[100 rows x 2 columns]
推荐阅读
- ssis - 使用 SSIS 从 CSV 文件中删除列
- optimization - 将常量缓冲区动态与立即索引是否有好处?
- java - builder.build().getShardManager() 返回 null (JDA Discord Bot) | 我如何调用 shardmanager?
- apache-superset - 如何仅在 Superset 1.0.1 中设置具有 sql_lab 访问权限的角色
- android - Android Studio 在调试构建类型期间执行一些发布任务
- pact-broker - 上传到契约经纪人的契约文件缺少某些细节
- python - Wrapper Ktrain for Text Classification Multiclass - 与 CPU 并行化拟合
- javascript - Django 按钮在点击时加载更多帖子
- java - JavaFX在for循环中将节点添加到锚窗格,但每次迭代等待几秒钟,然后再添加下一个节点
- php - PHP按键排序多维数组