为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过两个独立的列对矩阵进行排序?

如何通过两个独立的列对矩阵进行排序?

噜噜哒 2021-08-24 17:39:01
我最近开始编程,我的任务是根据药物剂量与安慰剂找出药物不同反应的平均值。我有一个 4 列的 Excel 文件,它分别被拆分为Drug_1_Dosage、Drug_1_Response、Drug_2_Dosage、Drug_2_Response。我想有这些值在Jupyter笔记本分页,使所有实例Drug_1_Dosage是1-8在上升的方式进行响应排序(有超过1行与用量1为例),同时,也做了同样的Drug_2_Dosage(但不影响第一个)。我想对它们进行排序,以便稍后计算均值并将其表示为两列矩阵。到目前为止,我有这个:import numpy as npimport pandas as pdfile = open('/Users/Envy/Desktop/Assingment Data.csv',"r")table = pd.read_csv('/Users/Envy/Desktop/Assingment Data.csv')drug_1_d = table.iloc[:,0]drug_1_r = table.iloc[:,1]drug_2_d = table.iloc[:,2]drug_2_r = table.iloc[:,3]到这里一切正常,因为我可以独立选择每一列。我尝试了以下排序没有成功:1) table = table.sort_values(['Dose drug 1', 'Dose drug 1'],ascending = True)   table = pd.DataFrame.as_matrix(table)   table = table[table[:,0].argsort()]2) table.sort(order=['f1'],axis=0)3) table.sort_values(['Dose drug 1', 'Dose drug 2'], ascending=[True])4) table = table.sort_values([:0,:2],ascending=[True]) 编辑:嘿,我做了一些刺激,这适用于上面的代码table = table.sort_values(['Dose drug 1', 'Dose drug 1'],ascending = True)table = pd.DataFrame.as_matrix(table) print(table) 但它返回[[ 1 21  3 27] [ 1 19  7 10] [ 1 32  3 12] ... [ 8 18  4 24] [ 8  9  1 10] [ 8 13  2  9]]这意味着它只按第 0 列排序,而不是按我想要的第 2 列排序。知道我如何独立拥有这两种类型吗?编辑:经过大量的反复试验,我现在有了解决方案;#Generate average response to dosage in 2 column matrixtable = pd.read_csv('Assingment Data.csv', sep=',')final_means = pd.DataFrame()# Grouping by Drug 1final_means['Average Response Drug'] = table.groupby(['Dose drug 1'])['Response drug 1'].mean()# Grouping by Drug 2final_means['Average Response Placebo'] = table.groupby(['Dose drug 2'])['Response drug 2'].mean()final_means.index.names = ['Dose']print(final_means)
查看完整描述

1 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

你熟悉 Pandas 的groupby操作吗?这使您可以按组进行推理,而无需显式对表进行排序


一个简单的例子:


>>> import pandas as pd

>>> df = pd.DataFrame(data={'col1': [0,0,1,1], 'col2': [1,2,3,4]})

>>> df

   col1  col2

0     0     1

1     0     2

2     1     3

3     1     4

>>> df.groupby('col1').mean()

      col2

col1

0      1.5

1      3.5


查看完整回答
反对 回复 2021-08-24
  • 1 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信