如何堆叠多个Pandas DataFrames?




如何堆叠多个Pandas DataFrames?

Python的广阔世界中有一个名为Pandas的辉煌星座。作为全球认可的数据管理和处理工具,它赋予数据分析师工具,这些工具是他们思维的延伸,将想法变成现实。

本讨论的重点在于Pandas的一个特殊功能,即沿轴融合数据框。当挑战是从不同来源汇集信息或将数据融合为全面分析时,Pandas提供了一篮子函数,如concat()、append()和merge()。选择合适的工具取决于我们的需求,本文将简化这个选择过程。

在这篇引人入胜的文章中,我们将重点介绍以下合并DataFrames的方法:



  • a. 列表推导和Pandas.concat的奇妙结合

  • b. 设置axis=0和keys的Pandas.concat的复杂性

  • c. numpy.vstack的优雅之处

  • d. Pandas.DataFrame.append的神奇之处

  • e. Pandas.concat的多功能性

语法:窥探Pandas的王国

在这个惊人的旅程中,我们将穿越Pandas库的王国,它是实现DataFrame融合的功能函数之门。让我们简要概述一下每个函数的语法,它们将照亮我们的道路:

concat()

pd.concat(objs, axis=0, join='outer', keys=None, ignore_index=False)

将下面的英文翻译成中文,不解释,保留HTML格式:

pd.concat()沿指定的轴将DataFrame或Series连接起来,可以选择连接类型和索引处理的选项。

append()

df1.append(df2, ignore_index=False, verify_integrity=False, sort=False)

df1.append(df2) 将df2的行添加到df1中,并默认重置索引。

vstack()

numpy.vstack(tup)

numpy.vstack(tup)函数将具有相同列数的数组以垂直(按行)方式堆叠起来。

示例

使用列表推导和pandas.concat函数

想象一个领域,你拥有一组渴望在垂直方向上和谐统一的虚幻DataFrame列表。不要担心,列表推导和pandas.concat函数的秘密将成为你的指引之光:

import pandas as pd

# List of DataFrames
dfs = [df1, df2, df3]

# Concatenate the DataFrames vertically
result = pd.concat(dfs)

print(result)

输出结果

A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
4  A4  B4
5  A5  B5

使用pandas.concat和axis=0以及keys

当想要用带有分层索引的DataFrame编织一幅图时,Pandas.concat与axis=0和keys的路径会展示其真正的光辉。



import pandas as pd

# DataFrames df1 and df2 defined above

# Concatenate the DataFrames vertically with keys
result = pd.concat([df1, df2], keys=['df1', 'df2'])

print(result)

输出

A   B
df1 0  A0  B0
    1  A1  B1
    2  A2  B2
df2 3  A3  B3
    4  A4  B4
    5  A5  B5

使用numpy.vstack

瞧,numpy.vstack的本质沉睡在这个领域,准备唤醒纵向DataFrame拼接的能力:

import pandas as pd
import numpy as np

# DataFrames df1 and df2 defined above

# Convert DataFrames to numpy arrays and stack them vertically
result_array = np.vstack([df1.values, df2.values])

# Convert the stacked numpy array back to a DataFrame
result = pd.DataFrame(result_array, columns=df1.columns)

print(result)

输出

A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
4  A4  B4
5  A5  B5

使用pandas.DataFrame.append

瞧,这是一段神秘的旅程,Pandas.DataFrame.append的力量使得数据帧沿着梦想的轴合并,融合它们的本质:

import pandas as pd

# DataFrames df1 and df2 defined above

# Append df2 to df1
result = df1.append(df2)

print(result)

输出

A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
4  A4  B4
5  A5  B5

使用pandas.concat

目睹Pandas.concat()函数的多功能性,它可以无缝地沿着选择的轴将DataFrames连接起来:

import pandas as pd

# DataFrames df1 and df2 defined above

# Concatenate the DataFrames vertically (default axis=0)
result = pd.concat([df1, df2])

print(result)

输出

A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
4  A4  B4
5  A5  B5

结论

Pandas拥有丰富的函数来合并或合并多个DataFrame,使您能够处理各种数据操作任务。这种理解就像握住一个巨大的宝库的钥匙,承诺了丰富的洞察力。

但是,请记住,我们只是浅尝辄止。还有其他功能,例如join()和update(),它们各自具有独特的功能。精通Pandas的过程是对数据分析核心的一次探险,这是一次发现乐趣和理解乐趣的旅程。



Python 精选笔记
在Python函数中如何使用全局变量?如何从Python对象中获取源代码?如何在Python中返回一个函数?如何在Python中安装matplotlib?Python - 分割包含散乱字符的字符串Python - 记录列表XORPython – 向记录的末尾添加数据Python - 键值大于K的记录在Python中垂直打印列表Python - 列表中字符串平均长度Python列表中的交替循环Python程序实现混淆词游戏Python-记录联合Python程序计算列表中元组的重复项Python程序:将字符串的字符转换为相反的大小写Python - 打印给定年份列表中的闰年数量Python - 打印所有子列表中的共同元素Python - 删除嵌套列表中的所有元素如何在Python列表中检查空格?在Python中引发异常到另一个异常Python字符串中的范围复制Python程序计算包含列表的列表中列表的数量修改给定Python列表中的重复值Python - 检查元素是否在指定范围内出现从Python的元组列表中删除所有字符串如何使用Pygame添加颜色呼吸效果?如何在Bokeh中添加颜色条如何在Bokeh中添加颜色选择器?使用Python程序显示带有星边框的数字半菱形图案Python使用ipaddress模块确定给定的IPv4地址是否为保留地址使用ipaddress模块的Python程序来确定给定的IP地址是公网还是私网Python程序通过平方和连接给定数字的奇数位数来创建一个OTPPython程序创建以零为中心的列表Python程序计算字符串中的字符数Python程序将米转换为码,反之亦然Python程序:统计文本文件中的元音、行数和字符数Python程序计算文本文件中的单词数量Python程序,用于计算文本文件中空格的数量将字典的值转换为字符串的Python程序Python程序将浮点数转换为指数Python程序将整数转换为指数Python程序将整数转换为罗马数字将整数列表转换为字符串列表的Python程序Python程序将XML转换为字典Python程序:通过重复键对应的值次数将字典转换为列表将Dict of list转换为CSV的Python程序使用正则表达式统计Python程序中大写字母、小写字母、特殊字符和数字值的个数Python元组的并集Python - 嵌套和混合列表中的类型转换Python - 将列表转换为单值列表的元组如何在Python中打印上标和下标?如何在Python中打印多个参数?如何在Plotly-Python中将图例定位在图表内部?如何使用Pandas绘制时序图表?如何使用SciPy在Python中绘制Ricker曲线?如何在Python列表中删除True值?如何使用Python将字典的值转换为绝对值?如何使用Python将字典转换为K个大小的字典?如何使用Python将浮点数舍入到2位小数?如何在Python中将Excel转换为CSV如何在Python中对元组进行索引和切片?如何在Python中判断一个对象是否有属性?在Python中创建实例对象如何使用Python获取城市的经纬度?如何在Python中获取整数输入?如何交换给定 NumPy 数组的列?如何使用NumPy抑制对小数的科学计数法使用?如何使用Python将XML数据存储到MySQL数据库中?如何在Pandas DataFrame中减去两列?如何在Pandas DataFrame中标准化数据?如何堆叠多个Pandas DataFrames?如何使用scikit-learn的train_test_split()函数拆分数据集如何在Python中分割数据以进行训练和测试,而不使用Sklearn在Python set中找到最大值和最小值Python程序:找到长方体的体积、表面积和空间对角线如何在Python程序中获取字符串的K个可能切片如何使用Altair在Python中制作密度图?生成一次性密码(OTP)的Python程序Python程序:找出数组中可被给定数整除的元素的XOR寻找巨大最大公约数(Jumbo GCD)子数组的Python程序如何在OpenCV Python中查找图像轮廓的边界矩形?如何在Python脚本所在的目录中打开文件?如何在Anaconda中安装Python包?如何在OpenCV Python中旋转图像?如何给定完整路径导入Python模块?如何在Python中从另一个函数调用变量?使用Python的Matplotlib在X轴上绘制日期如何在Python中不使用math模块进行平方根运算?如何在Python Tkinter中给Frame添加边框?如何从Python函数返回一个字典?Python程序获取元组中的第一个和最后一个元素如何求一个Python字典的值的总和?Python Pandas - 查找列的最大值并返回其对应的行值机器人流程自动化 - 简介机器学习中的逻辑回归损失函数如何从Python日期中减去一天?将物联网和机器学习相结合,使我们的未来更智能机器学习中的Boosting | Boosting和AdaBoost如何在Python中将时间戳字符串转换为datetime对象?如何在Python中将变量名转换为字符串?什么是Python中的.pyc文件?Python - 检查列表中的所有元素是否相同如何在Python Plotly中设置Y轴的范围?如何将Python日期转换为Unix时间戳?Python中的Turtle绘图编程如何在Python中的给定位置插入一个对象到列表中?如何在Python中进行日期验证?如何使用Python将两个图并排显示?在Python中的方法和函数之间的区别Python中的PYTHONPATH环境变量是什么?如何对Python日期字符串列表进行排序?在Python的Pandas中向现有的DataFrame中添加新列如何将Python元组转换为字典?Python - 使用Pandas读取没有标题的csv文件?如何使用OpenCV Python在图像中检测矩形和正方形?如何使用OpenCV在Python中改变图像的对比度和亮度?如何在Python中将日期时间转换为UTC时间戳?如何列出Python模块中的所有函数?Python程序查找字符串中的所有重复字符使用Python进行文件搜索如何在Python Tkinter中更改按钮大小?如何在Python shell中了解/更改当前目录?如何在Python中检查一个字符是否为大写字母?如何在OpenCV Python中对图像进行归一化?在Python中更新列表如何在Python中生成不重复的随机数?Python中元素的频率列表在Python中for循环和while循环的区别如何在Python的Plotly中绘制多条线在同一Y轴上?如何从Python列表中删除一个对象?如何在Python中使用Matplotlib和Pandas绘制CSV数据?如何在Python中安装OpenCV?Python3程序,用于找到具有相同左右旋转的数字的最长子序列如何在Python字符串中检查空格?Python - 替代前后和Python - 检查浮点字符串Python3程序——在二进制字符串的任意旋转中找到连续放置在开头和结尾的0的最大数量Python中的Blackman窗Python3程序,用于在恒定时间内查询给定字符串的旋转和第K个字符如何在Python列表中添加后缀/前缀?Python – 按元组键聚合值