熊猫,附加到excel中的下一个可用行[重复]
Posted
技术标签:
【中文标题】熊猫,附加到excel中的下一个可用行[重复]【英文标题】:Pandas, appending to next available line in excel [duplicate] 【发布时间】:2020-05-03 12:04:12 【问题描述】:我正在尝试创建一个订单数据库。非常有时间程序运行并且用户输入他们的数据 - 创建一个包含这些数据的不同列表。在程序结束时,我将此数据添加到数据库中。 我目前使用它来连接多个列表并以我需要的格式输入到数据库。
orderNumber = ['123456789']
countryOfOrigin = ['United Kingdom']
sizeList = ['2', '4']
quantityList = ['10', '12']
这是我得到的输出:
OrderNumber COO Size QTY
123456789 United Kingdom 2 10
123456789 United Kingdom 4 20
注意:行数由大小数决定...如果其他列表只有一项,则将数据复制下来以填充行。
这是用于创建 DataFrame 的代码。
vals = [orderNumber, countryOfOrigin, sizeList, quantityList]
header = ["OrderNumber", "COO", "Size", "QTY"]
d = a: b[0] if len(b) == 1 else b for a, b in zip(header, vals)
order = pd.DataFrame(d)
它只是使用这个保存到一个文档中:
order.to_excel('C:/Users/userName/Desktop/Pandas-Example2.xlsx', index=False, encoding='utf-8')
这一切都有效,但如果文档在提供的位置路径中不可用,它会创建一个。如果它已经在那里。每次程序运行时,数据都会被新数据替换。
我需要它不替换已经存在的内容,而是找到最后填充的行,跳过一个(创建一个行间隙)并在下面填充新数据。
我尝试在以下位置指定行:
bottom = excelFile.tail(1)
order.to_excel('C:/Users/userName/Desktop/Pandas-Example2.xlsx',
index=False, encoding='utf-8', startrow=bottom, startcol=1)
没有运气。
【问题讨论】:
这能回答你的问题吗? How to write to an existing excel file without overwriting data (using pandas)? 【参考方案1】:我认为这可能会对您有所帮助:https://***.com/a/47740262/10740287
通过使用带有参数index=False
和encoding='utf-8'
的辅助函数append_df_to_excel
,你应该得到你想要的。
append_df_to_excel('C:/Users/userName/Desktop/Pandas-Example2.xlsx', order, index=False, encoding='utf-8)
【讨论】:
谢谢你成功了。但是,每次将数据附加到 excel 文件时 - 数据和列标题都会被附加。我需要的只是数据——不需要标题名称。编辑:对于那些想要在没有列标题的情况下追加的人,只需在 DataFrame 对象之后添加 ``` header=False```。以上是关于熊猫,附加到excel中的下一个可用行[重复]的主要内容,如果未能解决你的问题,请参考以下文章
c#如何使用OleDbCommand在指定列名下的Excel工作表的下一个可用行中添加指定值