pandas向已经拥有数据的Excel文件中添加新数据

不知道大家有没有过相同的经历,就是我们向Excel表格中添加新数据的时候,经常会导致原先拥有的数据被覆盖掉了,那么如何解决这个问题呢,这里给出一种可行的方法。阅读此篇的基础是先理解pandas DataFrame拼接。(超链接点击跳转)
比如我们有一个Excel数据,其中有数据如下图所示:
在这里插入图片描述
然后我们想向其中加入一组新的数据,比如:leben (v) 生活。那么该如何实现呢?请看如下代码:

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

df = pd.read_excel(r"C:/Users/15025/Desktop/debug1.xlsx")

word = "leben"
character = "(v)"
meaning = "生活"
dataframe = pd.DataFrame([[word, character, meaning]], columns=["word", "character", "meaning"])

df_new = df.append(dataframe, ignore_index=True)

df_new.to_excel(r"C:/Users/15025/Desktop/debug1.xlsx", sheet_name="Sheet2", index=False, engine="openpyxl")

小提示:当我们从Excel表格中读取数据时,数据本身已经以DataFrame的格式被存储了。

最终结果如下:
在这里插入图片描述
至此,我们成功地向已经拥有数据的Excel表格中插入了我们想要的数据。
相关参数解释:
sheet_name="Sheet2":表示我们将要把数据写入到Excel表格中的哪一页当中。
index=False:表示我们在写入数据到Excel表格中时左侧的index不显示出来。
engine="openpyxl":可选择参数,表示我们写入Excel数据中所使用的引擎。

注意
有些小伙伴运行上述程序可能会报错,这是因为 pandas 库升级了,作者为了让大家区分 pandas.append()Python 自带的 listappend() 方法,他删除了原来的 append() 方法,现在可以暂时用 _append() 方法平替。只需要将上述代码中的 append() 换位 _append() 即可。感谢评论区小伙伴的提醒。

如果大家觉得有用,就请点个赞吧~

在使用pandas处理Excel文件数据时,如果需要将一个Excel文件数据添加到另一个Excel文件,并且要确保数据不错位,可以按照以下步骤进行操作: 1. 读取源Excel文件和目标Excel文件,使用pandas的`read_excel`函数。 2. 确定要添加数据在源Excel文件的具体位置,以及目标Excel文件对应的数据起始位置。 3. 使用pandas的`concat`函数将数据合并在一起,如果需要根据列名合并,可以设置`axis=1`,这样就会在水平方向上进行合并。 4. 将合并后的数据写回到目标Excel文件,使用pandas的`to_excel`函数,并通过`startrow`参数指定写入数据的起始行,以及`header=False`(如果数据已经包含列名)来避免重复写入列名。 例如,如果我们有两个Excel文件`source.xlsx`和`target.xlsx`,我们想要将`source.xlsx`数据添加到`target.xlsx`的第二个工作表,从第三行开始,可以使用以下代码实现: ```python import pandas as pd # 读取源Excel文件 source_df = pd.read_excel('source.xlsx') # 读取目标Excel文件 target_df = pd.read_excel('target.xlsx', sheet_name='Sheet2') # 确定目标文件数据的起始行 start_row = 3 # 检查是否需要调整索引或列的顺序 # ... # 将源数据添加到目标数据的底部 target_df.loc[start_row:] = source_df.values # 将更后的数据写回目标Excel文件,不覆盖原有数据 with pd.ExcelWriter('target.xlsx', mode='a', if_sheet_exists='overlay') as writer: target_df.to_excel(writer, sheet_name='Sheet2', index=False, header=False, startrow=start_row) ``` 在使用`ExcelWriter`时,`mode='a'`表示追加模式,`if_sheet_exists='overlay'`表示如果工作表已存在,则覆盖原有数据
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤奋的大熊猫

你的鼓励将是我写作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值