Pandas教程15:多个DataFrame数据(保存+追加)为Excel表格数据
---------------pandas数据分析集合---------------
Python教程71:学习Pandas中一维数组Series
Python教程74:Pandas中DataFrame数据创建方法及缺失值与重复值处理
Pandas数据化分析,DataFrame行列索引数据的选取,增加,修改和删除操作
Pandas教程05:DataFrame数据常用属性和方法汇总
Pandas教程06:DataFrame.merge数据的合并处理
Pandas教程07:DataFrame数据的算术运算+逻辑运算+describe()方法+统计函数+自定义函数运算
Pandas教程08:教你DataFrame数据的条件筛选——精选篇
Pandas教程09:使用date_range函数,创建时间序列数据
Pandas教程10:DataFrame数据可视化绘制折线图、柱状图、散点图、饼形图
Pandas教程11:关于pd.DataFrame.shift(1)数据下移的示例用法
Tkinter教程22:DataFrame数据加入到treeview树视图(含横纵滚动条+正反向排序)
Pandas教程12:常用的pd.set_option方法,显示所有行和列+不换行显示等等…
Pandas教程13:groupby函数的分组、聚合、转换和过滤操作
Pandas教程14:DataFrame数据合并(concat+merge+_append+join)的4种方法
Pandas教程15:多个DataFrame数据(保存+追加)为Excel表格数据
Pandas教程16:DataFrame列标题批量重命名+空df数据判断+列名顺序重排
Pandas教程17:关于json数据转化成DataFrame数据,消除警告提示的方法。
Pandas教程18:df数据中含有的关键字批量replace替换+删除行或列
Pandas教程19:groupby分组后,对列中指定关键字的组,进行求和运算。
1.代码解析:1.先准备一个df1和df2数据,使用pd.concat函数进行df新旧数据合并处理,参数为多个df数据,列表类型,然后把处理后的数据打印出来。2.然后使用df_all.to_excel把它保存为表格数据,假设命名为古诗词.xlsx。3.再使用pd.read_excel读取一些刚刚的写的表格数据,如果能读到数据,说明写入成功了。这样就可以实现数据的保存和追加操作了。
# @Author : 小红牛 # 微信公众号:WdPython import pandas as pd data1 = {'诗人': ['李白', '苏轼', '李清照', '杜甫'], '性别': ['男', '男', '女', '男', ], '年龄': [18, 26, 13, 15], '朝代': ['唐', '宋', '宋', '唐'], '薪资': [9000, 7000, 8000, 5000]} df1 = pd.DataFrame(data1) print('1.原始Df1数据'.center(50, '-')) print(df1) data2 = {'诗人': ['岳飞', '纳兰性德', '曹雪芹'], '性别': ['男', '男', '男'], '年龄': [28, 26, 40], '朝代': ['宋', '清', '清'], '薪资': [7000, 6000, 8000]} print('2.原始DF2数据'.center(50, '-')) df2 = pd.DataFrame(data2) print(df2) print('3.concat与新df数据合并'.center(50, '-')) # concat 合并有相同字段名的dataframe数据 df_all = pd.concat([df1, df2], ignore_index=True) print(df_all) # 写数据 df_all.to_excel('古诗词.xlsx', index=False) print('4.读新旧表格数据'.center(50, '-')) df_new = pd.read_excel('古诗词.xlsx') print(df_new)
输出内容
--------------------1.原始Df1数据--------------------- 诗人 性别 年龄 朝代 薪资 0 李白 男 18 唐 9000 1 苏轼 男 26 宋 7000 2 李清照 女 13 宋 8000 3 杜甫 男 15 唐 5000 --------------------2.原始DF2数据--------------------- 诗人 性别 年龄 朝代 薪资 0 岳飞 男 28 宋 7000 1 纳兰性德 男 26 清 6000 2 曹雪芹 男 40 清 8000 -----------------3.concat与新df数据合并----------------- 诗人 性别 年龄 朝代 薪资 0 李白 男 18 唐 9000 1 苏轼 男 26 宋 7000 2 李清照 女 13 宋 8000 3 杜甫 男 15 唐 5000 4 岳飞 男 28 宋 7000 5 纳兰性德 男 26 清 6000 6 曹雪芹 男 40 清 8000 --------------------4.读新旧表格数据--------------------- 诗人 性别 年龄 朝代 薪资 0 李白 男 18 唐 9000 1 苏轼 男 26 宋 7000 2 李清照 女 13 宋 8000 3 杜甫 男 15 唐 5000 4 岳飞 男 28 宋 7000 5 纳兰性德 男 26 清 6000 6 曹雪芹 男 40 清 8000
2.如何合并多个DataFrames数据:有以下两种方法,处理完数据之后,就可以调用excel保存和读取方法了。
索引的唯一性:每次合并时,如果新的DataFrame具有与现有数据冲突的索引,Pandas会默认重置索引或引发错误。为了避免这种情况,你可以在合并之前设置新的索引或重置索引。
性能考虑:循环合并多个DataFrame可能不是最高效的方法,特别是当DataFrame的数量或大小很大时。如果可能的话,考虑一次性合并所有DataFrame。
import pandas as pd # 假设我们有很多个DataFrame数据 dataframes = [] for i in range(5): df = pd.DataFrame({'A': [i * 10], 'B': [i * 10]}, index=[i+1]) dataframes.append(df) print(f'第{i+1}个df数据'.center(50, '-')) print(df) print('2.方法1: 一次性合并所有DataFrame数据'.center(50, '-')) result_df1 = pd.concat(dataframes, ignore_index=True) print(result_df1) print('3.方法2: 循环合并每个DataFrame数据'.center(50, '-')) # 3.初始化一个空的DataFrame,用于保存合并结果 result_df2 = pd.DataFrame() for df in dataframes: # 在这里,你可以选择是否重置索引,或者如何处理冲突的索引 # 例如,你可以使用ignore_index=True来自动重置索引 result_df2 = pd.concat([result_df2, df], ignore_index=True) print(result_df2)
在这个例子中,dataframes列表包含了5个DataFrame,每个DataFrame都有一个从1到5的整数索引。在循环中,我们使用pd.concat来合并每个DataFrame到result_df中,并设置ignore_index=True来自动重置索引。如果你正在处理大量数据或需要优化性能,请考虑一次性合并所有DataFrame,而不是使用循环。
输出内容:
---------------------第1个df数据---------------------- A B 1 0 0 ---------------------第2个df数据---------------------- A B 2 10 10 ---------------------第3个df数据---------------------- A B 3 20 20 ---------------------第4个df数据---------------------- A B 4 30 30 ---------------------第5个df数据---------------------- A B 5 40 40 ------------2.方法1: 一次性合并所有DataFrame数据------------- A B 0 0 0 1 10 10 2 20 20 3 30 30 4 40 40 -------------3.方法2: 循环合并每个DataFrame数据------------- A B 0 0 0 1 10 10 2 20 20 3 30 30 4 40 40
完毕!!感谢您的收看
----------★★历史博文集合★★----------
我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具 NumPy Pygame
还没有评论,来说两句吧...