Pandas的DataFrame教程——指定位置增加删除一行一列

独家作者(csdn、掘金、知乎、微信公众号):PaperAgent
每天一篇大模型(LLM)文章来锻炼我们的思维,简单的例子,不简单的方法,提升自己

1、删除一行、一列

>>> df
   A  B  C  D
0  1  3  3  4
1  5  6  7  8
2  1  1  1  1
3  2  3  2  3

#删除A列,不改变原来的data数据,返回删除后的新表data_2。axis为1表示删除列,0表示删除行。inplace为True表示直接对原表修改。

>>> data_2 = df.drop('A',axis=1,inplace=False)    #删除列
>>> data_2
   B  C  D
0  3  3  4
1  6  7  8
2  1  1  1
3  3  2  3
>>> df.drop(0,axis=0,inplace=False)               #删除行
   A  B  C  D
1  5  6  7  8
2  1  1  1  1
3  2  3  2  3
>>>

2、指定位置增加行列

>>> df
   A  B  C   D
0  1  3  3   4
1  5  6  7   8
2  1  1  1   1
3  2  3  2   3
4  7  8  9  10
>>> df.insert(0,'E',[11,12,13,14,15])     #插入一列
>>> df
    E  A  B  C   D
0  11  1  3  3   4
1  12  5  6  7   8
2  13  1  1  1   1
3  14  2  3  2   3
4  15  7  8  9  10
>>> df
    E  A  B  C   D
0  11  1  3  3   4
1  12  5  6  7   8
2  13  1  1  1   1
3  14  2  3  2   3
4  15  7  8  9  10

df.insert(1,'调换',df.pop('A'))  #改变某一列的位置。如:先删除A列,然后在原表data中第1列插入被删掉的列。

>>> df
    E  调换  B  C   D
0  11   1  3  3   4
1  12   5  6  7   8
2  13   1  1  1   1
3  14   2  3  2   3
4  15   7  8  9  10
>>> df                   字典方式添加一行,append,忽略索引
   a  b  c  d
0  1  3  3  4
1  5  6  7  8
>>>
>>>
>>> row={'a':9,'b':10,'c':11,'d':12}
>>> df.append(row,ignore_index=True)
   a   b   c   d
0  1   3   3   4
1  5   6   7   8
2  9  10  11  12
>>>                      用loc指定位置添加一行
>>> df.loc[2]=[9,10,11,12]
>>> df
   a   b   c   d
0  1   3   3   4
1  5   6   7   8
2  9  10  11  12
>>>

2-1、 指定位置插入一行,索引非数字

>>> df = pd.DataFrame({'A': [0, 1, 2], 'B': [3, 4, 5]},index=['c','d','f'])
>>> df
   A  B
c  0  3
d  1  4
f  2  5
>>> df.loc['c']=['test','test']      ###指定位置插入一行
>>> df
      A     B
c  test  test
d     1     4
f     2     5


##########如果不想替换,可以参考如下方式
pd.DataFrame(np.insert(df.values, 0, values=[10, 10], axis=0))

还有其他方式,比如把df拆分成两个df,用append,然后在合并

3、按特定顺序,插入一行,保证索引按序排列

>>> df
    E  调换  B  C   D
0  11   1  3  3   4
1  12   5  6  7   8
2  13   1  1  1   1
3  14   2  3  2   3
4  15   7  8  9  10
>>>
>>> df.loc[5]=[9,9,9,9,9]                     #插入一行,按E列的顺序,升序
>>> df
    E  调换  B  C   D
0  11   1  3  3   4
1  12   5  6  7   8
2  13   1  1  1   1
3  14   2  3  2   3
4  15   7  8  9  10
5   9   9  9  9   9
>>> df.sort_values(by='E')                    #按E列排序
    E  调换  B  C   D
5   9   9  9  9   9
0  11   1  3  3   4
1  12   5  6  7   8
2  13   1  1  1   1
3  14   2  3  2   3
4  15   7  8  9  10
>>> df1=df.sort_values(by='E')
>>> df1.reset_index()                        #重置索引
   index   E  调换  B  C   D
0      5   9   9  9  9   9
1      0  11   1  3  3   4
2      1  12   5  6  7   8
3      2  13   1  1  1   1
4      3  14   2  3  2   3
5      4  15   7  8  9  10
>>> df2=df1.reset_index()
>>> del df2['index']
>>> df2                                      #删除掉原来的索引列index
    E  调换  B  C   D
0   9   9  9  9   9
1  11   1  3  3   4
2  12   5  6  7   8
3  13   1  1  1   1
4  14   2  3  2   3
5  15   7  8  9  10
>>>                                         

参考文献:

pandas学习:对series和dataframe进行排序: pandas学习:对series和dataframe进行排序_pandas frame 排序-CSDN博客

Pandas set_index&reset_index : Pandas set_index&reset_index_pandas index重置 从1开始-CSDN博客

  • 34
    点赞
  • 207
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值