Python 如何在列之间执行除法并将答案存储在新的数据帧中
我刚刚开始学习使用python编程,我正在尝试解决如何巧妙地执行列之间的划分 我有一个数据框,如下所示: 列中的数字(例如101)是主题ID。 我想将101-A-5列中的值除以101-A-4列中的值,并将答案存储在数据框B中: 我想对所有的主题ID重复这个过程。(在这个例子中,我只包括了三个,但在实际数据中有10个) 总而言之,我想这样做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应用
{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