首页 > 解决方案 > 如何在列之间执行划分并将答案存储在新的数据框中

问题描述

我刚开始学习使用 python 编程,我正在尝试解决如何巧妙地执行列之间的划分。

我有一个如下的数据框: 数据框 A

列中的数字(例如 101)是主题 ID。我想将 101-A-5 列中的值除以 101-A-4 列中的值并将答案存储在数据框 B 中: 数据框 B

我想对所有主题 ID 重复该过程。(在示例中我只包括了三个,但在实际数据中有 10 个)总而言之,我想做 {subject_id}-A-5 / {subject_id}-A-4

有没有聪明的方法来做到这一点?

标签: pythonpandasdataframe

解决方案


您可以列出所有内容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]

推荐阅读