python - 选择列之间的最小值python

标签 python pandas dataframe

我有一个如下所示的 DataFrame。 “姓名”代表学生姓名,每个测试变量下面的值代表测试成绩。

Name Test1 Test2 Test3
Ana  87    93    82
Cole 62    73    84
Sia  64    58    60
Max  93    95    99
Leah 93    90    85
Cam  76    80    83

所需的结果是下面的 DataFrame。其中“MinTestGrade”表示每个学生在 3 个分数之间获得的最低分数。“TestNumber”是他们获得最低分数的测试。

Name TestNumber MinTestGrade
Ana  3          82
Cole 1          62
Sia  2          58
Max  1          93
Leah 3          85
Cam  1          76

如何使用 python 来做到这一点?

最佳答案

您可以将idxminmin传递给轴上的agg来查找最低成绩及其对应的列名称,即TestNumber为每个学生。然后用“Name”加入结果,重命名列,最后从“TestNumber”中删除单词“Test”:

out = df[['Name']].join(df.filter(like='Test').agg(['idxmin', 'min'], axis=1)).rename(columns={'idxmin':'TestNumber', 'min':'MinTestGrade'})
out['TestNumber'] = out['TestNumber'].str.lstrip('Test').astype(int)

输出:

   Name  TestNumber MinTestGrade
0   Ana           3           82
1  Cole           1           62
2   Sia           2           58
3   Max           1           93
4  Leah           3           85
5   Cam           1           76

关于python - 选择列之间的最小值python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71041861/

相关文章:

python - 将数据框插入到另一个数据框中每个组的行中

Pythonic/有效的方法从每个包含字符串对象的 Pandas 数据框单元格中去除空格

R:更改/匹配两个数据框之间公共(public)列的数据类型

python - pyplot : loglog() with base e

python - 将对象包装到派生类中

python - angularjs 最快/最简单的后端?

javascript - 抓取使用 firebase 数据库的网页

python - 没有名为 'pandas._libs.tslib' 的模块

python - 如何将数据框中的列合并到另一个数据框中

重命名多个数据框列,按当前名称引用