这是一个pandas/Dataframe,它包含每个人每天的所有分数,我想要添加一列来收集最高分出现的次数(可能有多个人并且某些数据为nan
)。
import pandas as pd
import numpy as np
data = np.array([['','day1','day2','day3','day4','day5'],
['larry',1,4,7,3,5],
['niko',2,-1,3,6,4],
['tin',np.nan,5,5, 6,7]])
df = pd.DataFrame(data=data[1:,1:],
index=data[1:,0],
columns=data[0,1:])
print(df)
输出
day1 day2 day3 day4 day5
larry 1 4 7 3 5
niko 2 -1 3 6 4
tin nan 5 5 6 7
预期结果为 (larry: 1 次,niko: 2 次,tin: 3 次)
times_of_top day1 day2 day3 day4 day5
larry 1 1 4 7 3 5
niko 2 2 -1 3 6 4
tin 3 nan 5 5 6 7
niko
在 day1
和 day4
上获得最高分,因此他的 times_of_top
值为 2。
tin
在 day2
、day4
和 day5
上获得最高分,因此他的 times_of_top
值为 3。