在行

时间:2019-09-05 13:48:34

标签: python pandas

我在数据框下方,想添加另外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

2 个答案:

答案 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