如何按列的字母顺序插入到pandas数据框中?

时间:2018-04-02 02:55:11

标签: python pandas insert insertion-sort

现在我有了这个:

#old df:

bar foo
1   a
3   b
5   z

我想插入一行[6," d"],因此df变为:

#new df:

bar foo
1   a
3   b
6   d
5   z

1 个答案:

答案 0 :(得分:1)

您可以使用append

df.append(pd.DataFrame([[6,"d"]],columns=df.columns)).sort_values('foo').reset_index(drop=True)
Out[46]: 
   bar foo
0    1   a
1    3   b
2    6   d
3    5   z

同样np.searchsorted是找到原始df中插入值的索引顺序

pd.concat([df,pd.DataFrame([[6,"d"]],columns=df.columns,index=np.searchsorted(df.foo,['d'])-1)]).sort_index()
Out[69]: 
   bar foo
0    1   a
1    3   b
1    6   d
2    5   z