前言

在pandas模块中,通常我们都需要对类型为DataFrame的数据进行操作,其中最为常见的操作便是拼接了。比如我们将两个Excel表格中的数据读入,随后拼接完成后保存进一个新的Excel表格文件中。之前查找了相关的博客, 发现网络上鱼龙混杂。有些代码完全无法执行,为了提高效率,这里做一个详细地记录。

DataFrame数据拼接方法一:使用.append()方法。

# -*- coding:utf-8 -*-
import pandas as pd

df1 = pd.DataFrame([[1, 2], [3, 4]])
df2 = pd.DataFrame([[5, 6], [7, 8]])

df = df1.append(df2)

print("df1的值为:")
print(df1)
print("df2的值为:")
print(df2)
print("df的值为:")
print(df)
"""
运行结果:
df1的值为:
   0  1
0  1  2
1  3  4
df2的值为:
   0  1
0  5  6
1  7  8
df的值为:
   0  1
0  1  2
1  3  4
0  5  6
1  7  8
"""

我们可以看到,首先我们使用了类似于list列表的操作方式,使用.append()方法对df1与df2数据进行了操作,但是需要注意的是,不同于对列表对象的操作,这里的df1仍旧为原来的df1所拥有的内容,而我们赋值的对象df才是保存了二者拼接以后的结果。 所以记得一定要单独执行赋值才可以得到正确的结果!!!其次我们看到结果其实是有些问题的,df结果中的纵向索引值为0,1,0,1,仍旧保留了我们拼接前各自的索引值,这是不被我们需要的,因此我们需要设置 ignore_index=True来对索引值进行重新排列。代码如下:

# -*- coding:utf-8 -*-
import pandas as pd

df1 = pd.DataFrame([[1, 2], [3, 4]])
df2 = pd.DataFrame([[5, 6], [7, 8]])

df = df1.append(df2,  ignore_index=True)

print("df1的值为:")
print(df1)
print("df2的值为:")
print(df2)
print("df的值为:")
print(df)
"""
运行结果:
df1的值为:
   0  1
0  1  2
1  3  4
df2的值为:
   0  1
0  5  6
1  7  8
df的值为:
   0  1
0  1  2
1  3  4
2  5  6
3  7  8
"""

我们可以看到,此时的纵向索引值变正常了。

注意: df1 = pd.DataFrame([[1, 2], [3, 4]])创建DataFrame类型的数据时要使用双层中括号,单层中括号会导致数据纵向排列。

DataFrame数据拼接方法二:使用.concat()方法。

# -*- coding:utf-8 -*-
import pandas as pd

df1 = pd.DataFrame([[1, 2], [3, 4]])
df2 = pd.DataFrame([[5, 6], [7, 8]])

df = pd.concat([df1, df2], ignore_index=True)

print("df1的值为:")
print(df1)
print("df2的值为:")
print(df2)
print("df的值为:")
print(df)
"""
运行结果:
df1的值为:
   0  1
0  1  2
1  3  4
df2的值为:
   0  1
0  5  6
1  7  8
df的值为:
   0  1
0  1  2
1  3  4
2  5  6
3  7  8
"""

我们可以看到成功实现了拼接。

但是这样并不美观,我们发现,我们的纵向index还是用0,1在表示,那么我们可不可以自定义纵向index呢?答案是可以的,请看如下代码:

import pandas as pd

df1 = pd.DataFrame([[1, 2], [3, 4]], columns=["column1", "column2"])
df2 = pd.DataFrame([[5, 6], [7, 8]], columns=["column1", "column2"])

df = pd.concat([df1, df2], ignore_index=True)

print("df1的值为:")
print(df1)
print("df2的值为:")
print(df2)
print("df的值为:")
print(df)
"""
运行结果:
df1的值为:
   column1  column2
0        1        2
1        3        4
df2的值为:
   column1  column2
0        5        6
1        7        8
df的值为:
   column1  column2
0        1        2
1        3        4
2        5        6
3        7        8
"""

至此,DataFrame的拼接问题暂时告一段落,当然还存在其他方法,以后有机会了再补充,这两种方法均为比较直观和简洁的方法。推荐使用。此外, pd.concat()函数也适用于多个DataFrame的拼接, 只要将第一个参数变为一个列表,涵盖所有的DataFrame名称即可,如[df1, df2, df3]。

补充:Python同时合并多个DataFrame

pandas的merge函数只能同时合并三个dataframe,如果涉及到合并多个dataframe就比较麻烦

这种情况下我们可以创建一个我们需要合并的列表,然后将他们一次性合并在一起

# merge any number of dataframes
from functools import reduce
df_groups = [df2, group1, group2, group3, group4, group5, group6, group7, group8]
df_merged = reduce(lambda left, right: pd.merge(left, right, on=['title']), df_groups)
df_merged.head()

总结

到此这篇关于Python pandas DataFrame数据拼接的文章就介绍到这了,更多相关pandas DataFrame拼接内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

Python pandas DataFrame数据拼接方法的更多相关文章

  1. Pandas如何将表格的前几行生成html实战案例

    这篇文章主要介绍了Pandas如何将表格的前几行生成html实战案例,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

  2. pandas如何计算同比环比增长

    这篇文章主要介绍了pandas如何计算同比环比增长,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. python sklearn与pandas实现缺失值数据预处理流程详解

    对于缺失值的处理,主要配合使用sklearn.impute中的SimpleImputer类、pandas、numpy。其中由于pandas对于数据探索、分析和探查的支持较为良好,因此围绕pandas的缺失值处理较为常用

  4. Javascript新手入门之字符串拼接与变量的应用

    这篇文章主要给大家介绍了关于Javascript新手入门之字符串拼接与变量应用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  5. Python使用pandas将表格数据进行处理

    这篇文章主要介绍了Python使用pandas将表格数据进行处理,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下

  6. pandas数据类型之Series的具体使用

    本文主要介绍了pandas数据类型之Series的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  7. 通过5个例子让你学会Pandas中的字符串过滤

    毋庸置疑Pandas是使用最广泛的Python库之一,它提供了许多功能和方法来执行有效的数据处理和数据分析,下面这篇文章主要给大家介绍了关于如何通过5个例子让你学会Pandas中字符串过滤的相关资料,需要的朋友可以参考下

  8. pandas的排序、分组groupby及cumsum累计求和方式

    这篇文章主要介绍了pandas的排序、分组groupby及cumsum累计求和方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  9. Python pandas DataFrame基础运算及空值填充详解

    pandas除了可以drop含有空值的数据之外,当然也可以用来填充空值,下面这篇文章主要给大家介绍了关于Python pandas DataFrame基础运算及空值填充的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

  10. Python Pandas 中的数据结构详解

    这篇文章主要介绍了Python Pandas 中的数据结构详解,Pandas有三种数据结构Series、DataFrame和Panel,文章围绕主题展开更多相关内容需要的小伙伴可以参考一下

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部