【发布时间】:2022-01-19 08:04:03
【问题描述】:
我有一个独特的数据框:
df = pd.DataFrame({'student': 'A B C D'.split(),
'score1':[20, 15, 30, 22],
'score2': [15, 22, 35, 18],
'score3': [24, 32, 38, 25],
'score4': [20, 20, 26, 30]})
print(df)
student score1 score2 score3 score4
0 A 20 15 24 20
1 B 15 22 32 20
2 C 30 35 38 26
3 D 22 18 25 30
我只需要保留那些最高分数比最低分数增加超过 10 的行,否则将它们删除。
例如,对于学生A,最低分数是15,之后分数增加到24(增加9),所以我们要放弃它。
对于学生B,最低分数是15,分数提高到32,所以我们会保留它。
对于学生C,最低分数是26,但之后分数没有增加。它基本上是减少了,所以我们要放弃它。
我知道diff() 和ge() 在这里会有所帮助,但不确定当最低分(必须在最高分的左侧)和最高分(必须在右侧)时它们会如何工作最低分的一侧)相隔许多列。
期望的输出:
name
B #--highest score of 32 (score3) increased by 17 from lowest score of 15 (score1)
D #--highest score of 30 (score4) increased by 12 from lowest score of 18 (score2)
任何建议将不胜感激。谢谢!
【问题讨论】:
标签: python pandas dataframe data-manipulation