我有一个100名参与者在2个不同时间点完成不同测试的数据框架。在这里,我只展示了三个这样的测试,即AB,LC,MA。这些测试的值是原始值,并且每个测试具有不同的最大值(对于AB,最大值是150,对于LC,最大值是12,并且对于MA,最大值是2000)。
数据框如下所示:
dict = {
"ID": [1, 1, 2, 2, 3, 3],
"Visit": [1, 2, 1, 2, 1, 2],
"AB": [30, 40, 50, 20, 10, 10],
"LC": [1, 4, 5, 6, 8, 9],
"MA": [300, 900, 400, 400, 450, 350]
}
df = pd.DataFrame(dict)
print(df)
ID Visit AB LC MA
0 1 1 30 1 300
1 1 2 40 4 900
2 2 1 50 5 400
3 2 2 20 6 400
4 3 1 10 8 450
5 3 2 10 9 350
字符串
我想根据每个测试的最大值为每行计算一个百分比分数,并将这些分数附加到一个带有后缀“_percent”的新列中(即“AB_percent”,“LC_percent”,“MA_percent”)。有没有一种方法可以根据字典中不同的最大值来Map列的百分比,并将这些值保存到一个后缀为“_percent”的新列中?
4条答案
按热度按时间0md85ypi1#
字符串
ru9i0ody2#
这里有一个方法:
字符串
5jvtdoz23#
这可以通过使用以下代码来完成:
字符串
或者更一般地说:
型
这导致
型
vxf3dgd44#
我想不出一个Pandas内置的功能,所以我会用一个简单的小算法来解决它,就像这样:
字符串
顺便说一句,如果你是导出这样的数据到excel,它会变得轻而易举地计算和形成这样的东西:)但我也喜欢自己一个很好的旧“所有在代码”的解决方案