我在数据框下方,想添加另外2列-最低和第二低
如果最低的是22,但第二最低的是23,则使用22,我只想在23以上的情况下才有23。
有人在这里待了一段时间,有人可以帮我吗; /
data = {"A":[22,22,22,19],"B":[23,23,19,17],"C":[22,23,20,15]}
df = pd.DataFrame(data)
A B C
0 22 23 22
1 22 23 23
2 22 19 20
3 19 17 15
Expected Result:
A B C Lowest 2nd lowest
0 22 23 22 22 22
1 22 23 23 22 22
2 22 19 20 19 20
3 19 17 15 15 17
答案 0 :(得分:0)
尝试以下代码:
df.iloc[[row_number]].max().sort_values(ascending=False).head(2)
答案 1 :(得分:0)
使用以下代码获取具有所需输出的新数据框
lar = lambda x: dict(zip(df.columns.tolist()+['lowest','second_lowest'],x.values.tolist()+x.nsmallest(2).values.tolist()))
df.apply(lar,axis=1,result_type='expand')
In [13]: df.apply(lar,axis=1,result_type='expand')
Out[13]:
A B C lowest second_lowest
0 22 23 22 22 22
1 22 23 23 22 23
2 22 19 20 19 20
3 19 17 15 15 17