使用Pandas从另一列中减去一列的值

2024-09-30 12:11:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的论文处理大量的数据(白血病-癌症),我必须处理所有这些数据。这种情况就像我有一个excel文件,列中有20个病人的名字,每个病人有2000行数据,现在我要找出每个病人每列的最大值和最小值,然后从最大值中减去最小值,然后除以.5并导出每个患者的值,我使用的是熊猫。在

我可以用

data.max(), data.min()

用于导出我使用的值-

^{pr2}$

这是两个独立的文件。在

现在我需要做的是确保只有一个文件,其中两列并排显示最大值和最小值,第三列显示减法后的值,最后一列显示除后的值。在

样本数据:

Patient No  Patient1    Patient2    Patient3    Patient4
gene data1  5614.705569 6446.177102 5756.830799 5498.327075
gene data2  592.8588927 401.8615001 459.7095671 619.2129817
gene data3  246.4022014 238.535468  261.7679828 207.4747361
gene data4  1273.25497  1318.80054  1338.271733 1221.564705
gene data5  51.0906811  37.07419033 26.28092875 37.12742504
gene data6  756.0119839 867.248239  956.754366  864.2708979
gene data7  168.4100068 153.3151275 136.5111169 205.8874617
gene data8  183.0011027 277.4930516 191.5097325 140.7178783
gene data9  1334.627713 1480.547871 688.3688018 3269.536931

最终输出:

Final Output

我希望这清楚地表明我要做什么。在

从2000行数据中找出每个患者列的最大值和最小值,然后使用此公式0.9/Max-Min并将每个患者的所有数据导出到csv-in列中。在

很抱歉,我刚开始使用Python。因此,任何帮助都将不胜感激。在


Tags: 文件数据患者data情况min名字excel
1条回答
网友
1楼 · 发布于 2024-09-30 12:11:06

这应该做到:

import pandas as pd

d = {'patient1': [1,2,3,4,5], 'patient2': [3,5,7,8,11], 'patient3': [5,9,13,17,21]}
df = pd.DataFrame(data=d)
min_df = df.apply(min,axis=0)
max_df = df.apply(max,axis=0)
sub_df = max_df - min_df
div_df = sub_df/0.5
out_df = pd.concat([min_df, max_df,sub_df,div_df], axis=1)
out_df.index.name = 'Patient'
out_df.columns = ['min','max','div','sub']
out_df.to_csv("out_all.csv")
out_df.T.to_csv("out_all_patients_as_columns.csv")

希望你能理解,适当地适应。在

相关问题 更多 >

    热门问题