找回密码
 会员注册
查看: 13|回复: 0

python的pandas中如何在dataframe中插入一行或一列数据?

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
71766
发表于 2024-9-9 11:03:48 | 显示全部楼层 |阅读模式
dataframe类型是如何插入一行或一列数据的呢?这个需求在本文中将会进行讨论。相比较ndarray类型的同样的“数据插入”需求,dataframe的实现方式,则不是很好用。本文以一个dataframe类型变量为例,测试插入一行数据或者一列数据的方式方法。测试环境:win10,python@3.11.0,numpy@1.24.2,pandas@1.5.3。某个位置插入列因为dataframe的insert(),不走寻常路。效果就是插入一列数据,并没有axis=这个参数来区分数据流的方向。并且默认效果就是替换原变量,并不是return新变量,并没有个inplace参数进行控制。测试代码:importpandasaspddf=pd.DataFrame({"姓名":["老许","虎子"],"重量":["10","15"]})df.insert(1,"种类",["猫","狗"])print(df)1234'运行运行输出:姓名种类重量0老许猫101虎子狗15123这个dataframe将作为原始数据,参与本文后续的代码实验。尾部插入列这个代码是最简单的,灰常简单。测试代码:importpandasaspddf=pd.DataFrame({"姓名":["老许","虎子"],"重量":["10","15"]})df["颜色"]=['黑色','黄色']print(df)12345'运行运行输出:姓名重量颜色0老许10黑色1虎子15黄色123某个位置插入行下面在第二行(编号1)位置插入两条数据。实际上先对dataframe在编号1位置进行了拆分,然后再在拆分的两部分中间放入了新的数据,最终执行合并操作。importpandasaspddf=pd.DataFrame({"姓名":["老许","虎子"],"种类":["猫","狗"],"重量":["10","15"]})data=pd.DataFrame({'姓名':["老许二代","二赖子"],'种类':["黑猫","花狗"],'重量':[3,15]})df2=pd.concat([df.loc[:0],data,df.loc[1:]]).reset_index(drop=True)print(df2)123456789'运行运行输出姓名种类重量0老许猫101老许二代黑猫32二赖子花狗153虎子狗1512345尾部插入行dataframe类型官方,对于插入新的一行数据的需求,就仅仅提供了一个append()操作,可以叠加新数据到尾部。importpandasaspddf=pd.DataFrame({"姓名":["老许","虎子"],"种类":["猫","狗"],"重量":["10","15"]})data=pd.DataFrame({'姓名':["老许二代","二赖子"],'种类':["黑猫","花狗"],'重量':[3,15]})df3=df.append(data,ignore_index=True)print(df3)123456789输出姓名种类重量0老许猫101虎子狗152老许二代黑猫33二赖子花狗1512345
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 13:48 , Processed in 0.550460 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表