DataFrame生成excel后为什么多了一行数字

问题描述

python查询数据生成excel文件,生成的excel多了第一行数字索引,1,2,3,4,5......

代码:

 df = pd.DataFrame(data)
 df.to_excel(filename, sheet_name='用户信息表', index=False)

解决:

原理也很简单,就是设置个参数header=False

df = pd.DataFrame(data)
df.to_excel(filename, sheet_name='用户信息表', index=False, header=False)

原因:

由于我把列头已经通过union的方式拼接到了data里的第一行,才导致该问题,类似如下代码

select
    'column1',
	'column2',
	'column3'
union all
SELECT
	a AS `column1`,
	b AS `column2`,
	c AS `column3`
from my_table

如果是指定列头就不会出现该问题,即:

# 示例数据
data = {
    'Column1': [1, 2, 3],
    'Column2': ['A', 'B', 'C']
}

方法详解

DataFrame.to_excel(excel_writer, sheet_name='Sheet1', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None)

参数:

  • excel_writer:文件路径或现有的ExcelWriter。
  • sheet_name:它是指包含DataFrame的工作表的名称。
  • na_repr:缺少数据表示形式。
  • float_format:这是一个可选参数, 用于格式化浮点数字符串。
  • 列:指要写入的列。
  • header:写出列名。如果给出了字符串列表, 则假定它是列名的别名。
  • index:写入索引。
  • index_label:引用索引列的列标签。如果未指定, 并且标头和索引为True, 则使用索引名称。如果DataFrame使用MultiIndex, 则应给出一个序列。
  • startrow:默认值0。它指向转储DataFrame的左上单元格行。
  • startcol:默认值0。它指向转储DataFrame的左上方单元格列。
  • engine:这是一个可选参数, 用于写入要使用的引擎, openpyxl或xlsxwriter。
  • merge_cells:返回布尔值, 其默认值为True。它将MultiIndex和Hierarchical行写为合并的单元格。
  • encoding:这是一个可选参数, 可对生成的excel文件进​​行编码。仅对于xlwt是必需的。
  • inf_rep:它也是一个可选参数, 默认值为inf。它通常表示无穷大。
  • 详细:返回一个布尔值。它的默认值为True。
    它用于在错误日志中显示更多信息。
  • Frozen_panes:它也是一个可选参数, 用于指定要冻结的最底部一行和最右边一列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值