Python 如何在列之间执行除法并将答案存储在新的数据帧中

Python 如何在列之间执行除法并将答案存储在新的数据帧中,python,pandas,dataframe,Python,Pandas,Dataframe,我刚刚开始学习使用python编程,我正在尝试解决如何巧妙地执行列之间的划分 我有一个数据框,如下所示: 列中的数字(例如101)是主题ID。 我想将101-A-5列中的值除以101-A-4列中的值,并将答案存储在数据框B中: 我想对所有的主题ID重复这个过程。(在这个例子中,我只包括了三个,但在实际数据中有10个) 总而言之,我想这样做 {subject\u id}-A-5/{subject\u id}-A-4 有没有聪明的方法可以做到这一点?您可以列出所有主题id,然后对每个主题id应用

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

我有一个数据框,如下所示:

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

我想对所有的主题ID重复这个过程。(在这个例子中,我只包括了三个,但在实际数据中有10个) 总而言之,我想这样做
{subject\u id}-A-5/{subject\u id}-A-4


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

您可以列出所有
主题id
,然后对每个主题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]

非常感谢你。一切顺利。作为一个新手,我想问一下,当你想解决这类问题时,你的大脑是如何工作的?我的意思是,当涉及到解决某个问题时,你脑子里在想什么?多练习问题,从其他好的解决方案中学习。投票并接受答案,如果它对你有帮助@Ryo\N