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

2020-08-19  本文已影响0人  王叽叽的小心情

在Pandas的DataFrame中的特定位置添加一行,比如在首行插入一行,或者是中间行的情况,因为append()函数默认是添加在最后一行的。

特定行插入的主要思想是新增一列,按照新列设置的顺序进行排序即可,操作过程如下:

# 目的:在构造的dataframe中的第二行添加一行数据
# 构建一个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
# 插入一行,随便设置索引,比如按照字符串作为索引
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
# 再接下来是重新设置索引
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就插入到第二行了

小结: 虽然有点曲线救国,但思想比较简单,总之就是新增一列指定好的顺序,按照新增列的顺序重新排列即可。在正式计算中,难点将转变为对列表中的特定位置进行插入,如文中手动定义的df['order'] = [1, 3, 4, 2]的列表。以后再进行这个基础操作的学习吧。

上一篇下一篇

猜你喜欢

热点阅读