Python Pandas 向DataFrame中的特定位置添加一行

在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í)吧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容