在Pandas的DataFrame中的特定位置添加一行,比如在首行插入一行,或者是中間行的情況,因為append()函數(shù)默認(rèn)是添加在最后一行的。
特定行插入的主要思想是新增一列,按照新列設(shè)置的順序進行排序即可,操作過程如下:
# 目的:在構(gòu)造的dataframe中的第二行添加一行數(shù)據(jù)
# 構(gòu)建一個dataframe
df = pd.DataFrame(columns=['name','number'], data=[['cat',3], ['dog',2],['pig',1]])
df
name number
0 cat 3
1 dog 2
2 pig 1
# 插入一行,隨便設(shè)置索引,比如按照字符串作為索引
df.loc['new'] = ['duck', 10]
df
name number
0 cat 3
1 dog 2
2 pig 1
new duck 10
# 此時需要把最后一行安排到第二行去,方法是新增一列指明他們的順序
df['order'] = [1, 3, 4, 2] # 所以這個順序列表很重要
# 此時的df為
df
name number order
0 cat 3 1
1 dog 2 3
2 pig 1 4
new duck 10 2
# 按照order字段進行排序
df = df.sort_values(by='order')
df
name number order
0 cat 3 1
new duck 10 2
1 dog 2 3
2 pig 1 4
# 再接下來是重新設(shè)置索引
df = df.reset_index()
df
index name number order
0 0 cat 3 1
1 new duck 10 2
2 1 dog 2 3
3 2 pig 1 4
# 最后刪除多余的列
df.drop(columns=['index','order'],inplace=True)
df
name number
0 cat 3
1 duck 10
2 dog 2
3 pig 1
# 新增的duck就插入到第二行了
小結(jié): 雖然有點曲線救國,但思想比較簡單,總之就是新增一列指定好的順序,按照新增列的順序重新排列即可。在正式計算中,難點將轉(zhuǎn)變?yōu)閷α斜碇械奶囟ㄎ恢眠M行插入,如文中手動定義的df['order'] = [1, 3, 4, 2]的列表。以后再進行這個基礎(chǔ)操作的學(xué)習(xí)吧。