Pandas之数据追加df.append方式

 更新时间:2023年08月15日 09:49:23   作者:山茶花开时。  
这篇文章主要介绍了Pandas之数据追加df.append方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Pandas 数据追加df.append

df.append()可以将其他DataFrame附加到调用方的末尾,并返回一个新对象

它是最简单、最常用的数据合并方式

语法

df.append(other, ignore_index=False, verify_integrity=False, sort=False)

参数

  • other:调用方要追加的其他DataFrame或者类似序列内容。可以放入一个由DataFrame组成的列表,将所有DataFrame追加起来
  • ignore_index:如果为True,则重新进行自然索引
  • verify_integrity:如果为True,则遇到重复索引内容时报错
  • sort:进行排序

1.相同结构

如果数据的字段相同,直接使用第一个DataFrame的append()方法,传入第二个DataFrame。

如果需要追加多个DataFrame,可以将它们组成一个列表再传入

import pandas as pd
df1 = pd.DataFrame({'x':[1,2],'y':[3,4]})
df2 = pd.DataFrame({'x':[5,6],'y':[7,8]})
res1 = df1.append(df2)
# 追加多个数据
res2 = df1.append([df2,df2,df2])

结果展示

df1

df2

res1

res2

2.不同结构

对于不同结构的追加,一方有而另一方没有的列会增加,没有内容的位置用NaN填充

import pandas as pd
df1 = pd.DataFrame({'x':[1,2],'y':[3,4]})
df3 = pd.DataFrame({'y':[5,6],'z':[7,8]})
# 追加合并
res = df1.append(df3)

结果展示

df1

df3

res

3.忽略索引

追加操作索引默认为原数据的,不会改变,如果需要忽略,可以传入ignore_index = True

import pandas as pd
df1 = pd.DataFrame({'x':[1,2],'y':[3,4]})
df2 = pd.DataFrame({'x':[5,6],'y':[7,8]})
# 忽略索引
res = df1.append(df2, ignore_index=True)

结果展示

df1

df2

res

4.重复内容

重复内容默认是可以追加的,如果传入verify_integrity = True参数和值,则会检测追加内容是否重复,如有重复会报错

import pandas as pd
df1 = pd.DataFrame({'x':[1,2],'y':[3,4]})
df2 = pd.DataFrame({'x':[5,6],'y':[7,8]})
# 合并两个相同的内容(报错)
df1.append([df2,df2], verify_integrity=True)

结果展示

df1

df2

5.追加序列

append()除了追加DataFrame外,还可以追加一个Series,经常用于数据添加更新场景

import pandas as pd
df = pd.DataFrame([['liver','E',89,21,24,64],
                   ['Arry','C',36,37,37,57],
                   ['Ack','A',57,60,18,84],
                   ['Eorge','C',93,96,71,78],
                   ['Oah','D',65,49,61,86]
                  ], 
                   columns = ['name','team','Q1','Q2','Q3','Q4'])
# 定义新同学的信息
lily = pd.Series(['lily','C',55,56,57,58],
                 index=['name','team','Q1','Q2','Q3','Q4'])
# 追加
df = df.append(lily, ignore_index=True)

结果展示

原df

lily

新df

6.追加字典

append()还可以追加字典

import pandas as pd
df = pd.DataFrame([['liver','E',89,21,24,64],
                   ['Arry','C',36,37,37,57],
                   ['Ack','A',57,60,18,84],
                   ['Eorge','C',93,96,71,78],
                   ['Oah','D',65,49,61,86]
                  ], 
                   columns = ['name','team','Q1','Q2','Q3','Q4'])
# 将学生信息定义为一个字典
lily = {'name':'lily','team':'C','Q1':55,'Q2':56,'Q3':57,'Q4':58}
df = df.append(lily, ignore_index=True)

结果展示

原df

lily

新df

扩展练习案例

import pandas as pd
df_list = []
df1 = pd.DataFrame([['A',1]],columns = ['Site','number'])
df_list.append(df1)
df2 = pd.DataFrame([['B',2]],columns = ['Site','number'])
df_list.append(df2)
df_all = pd.concat([df1,df2])
df3 = pd.DataFrame([['C',3]],columns = ['Site','number'])
df_list.append(df3)
df_all = pd.concat(df_list)
df_all = df_all.reset_index(drop=True)

df1

df2

df3

df_all

df_list

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python NumPy教程之索引详解

    Python NumPy教程之索引详解

    这篇文章主要为大家详细介绍了Python NumPy中索引的使用方法,文中的示例代码讲解详细,对我们学习Python有一定帮助,需要的可以参考一下
    2022-08-08
  • Pytorch 高效使用GPU的操作

    Pytorch 高效使用GPU的操作

    这篇文章主要介绍了Pytorch 高效使用GPU的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python中模块的__all__属性详解

    python中模块的__all__属性详解

    这篇文章主要介绍了python中模块的__all__属性详解,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • python实现大量图片重命名

    python实现大量图片重命名

    这篇文章主要为大家详细介绍了python实现大量图片重命名,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • python按照多个字符对字符串进行分割的方法

    python按照多个字符对字符串进行分割的方法

    这篇文章主要介绍了python按照多个字符对字符串进行分割的方法,涉及Python中正则表达式匹配的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • 浅析Python中正则表达式函数search()和match()的使用

    浅析Python中正则表达式函数search()和match()的使用

    在Python中,正则表达式是处理字符串的强大工具,search()和match()是Python标准库中re模块中两个常用的正则表达式方法,本文将详细讲解这两个方法的使用,需要的可以参考一下
    2023-08-08
  • Python转换时间的图文方法

    Python转换时间的图文方法

    在本篇文章里小编给大家整理的是关于Python转换时间的方法以及具体步骤流程,需要的朋友们参考下。
    2019-07-07
  • python 捕获 shell/bash 脚本的输出结果实例

    python 捕获 shell/bash 脚本的输出结果实例

    下面小编就为大家带来一篇python 捕获 shell/bash 脚本的输出结果实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 简单谈谈Python面向对象的相关知识

    简单谈谈Python面向对象的相关知识

    由于马上就要期末考试了,正在抓紧时间复习 所以这一篇就拖了很久,抱歉啦~ 今天会说说: 属性私有,方法私有,重写,魔术方法,需要的朋友可以参考下
    2021-01-01
  • Python反爬虫技术之防止IP地址被封杀的讲解

    Python反爬虫技术之防止IP地址被封杀的讲解

    今天小编就为大家分享一篇关于Python反爬虫技术之防止IP地址被封杀的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01

最新评论