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   李白  男  189000
1   苏轼  男  267000
2  李清照  女  138000
3   杜甫  男  155000
--------------------2.原始DF2数据---------------------
     诗人 性别  年龄 朝代    薪资
0    岳飞  男  287000
1  纳兰性德  男  266000
2   曹雪芹  男  408000
-----------------3.concat与新df数据合并-----------------
     诗人 性别  年龄 朝代    薪资
0    李白  男  189000
1    苏轼  男  267000
2   李清照  女  138000
3    杜甫  男  155000
4    岳飞  男  287000
5  纳兰性德  男  266000
6   曹雪芹  男  408000
--------------------4.读新旧表格数据---------------------
     诗人 性别  年龄 朝代    薪资
0    李白  男  189000
1    苏轼  男  267000
2   李清照  女  138000
3    杜甫  男  155000
4    岳飞  男  287000
5  纳兰性德  男  266000
6   曹雪芹  男  408000

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

你可能感兴趣的:(我的Python教程,#,Pandas,pandas,excel,Python教程)