【发布时间】:2020-08-13 21:00:50
【问题描述】:
我已经为此花费了太长时间,但这应该很容易,但是..
我有数据集:
date score1 score2
0 1.8.2020 10 11
1 1.8.2020 15 10
2 1.8.2020 16 7
3 2.8.2020 8 7
4 2.8.2020 2 9
5 2.8.2020 6 8
6 3.8.2020 8 3
7 3.8.2020 5 4
8 4.8.2020 1 5
9 4.8.2020 1 3
10 4.8.2020 0 5
对于每一天:我想找到该日期列“score1”值的第二低得分,并创建名为 result1 的新列,如果该行中这一天的值是第二低,则创建值为 1,否则为 0。 (如果多天得分相同,则两者都可以给 1)
例如 1.8.2020,第二低的值位于第 1 行,值为 15,该行应在“result1”列中获得 1 分。
结果应该是这样的:
date score1 score2 result1
0 1.8.2020 10 11 0
1 1.8.2020 15 10 1
2 1.8.2020 16 7 0
3 2.8.2020 8 7 0
4 2.8.2020 2 9 0
5 2.8.2020 6 8 1
6 3.8.2020 8 3 1
7 3.8.2020 5 4 0
8 4.8.2020 1 5 1
9 4.8.2020 1 3 1
10 4.8.2020 0 5 0
同样的逻辑也可以应用于列 score2 创建另一个列 result2。
【问题讨论】:
标签: python pandas dataframe group-by