You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python将XLSX工作表转换为CSV的格式问题求助

解决Python读取XLSX指定工作表并转结构化CSV的问题

错误原因分析

  • 你用df1.loc['1:3','D']报错的核心问题:
    • loc是标签索引,Pandas默认行索引是从0开始的整数,不是Excel的1-based行号,所以'1:3'这个标签不存在。
    • 列参数用'D'是Excel的列字母,但如果你的工作表第一行是Author_Name这类表头,Pandas会把这些作为列名,而非D/E这类标识,自然找不到对应列。

正确实现步骤

1. 读取XLSX指定工作表

确保读取时正确识别表头,默认header=0(即第一行为表头),如果你的表头在其他行,需手动指定header参数。

2. 筛选指定列和行

  • 提取指定列:直接用列名列表筛选,比如要保留Author_Name、Ticker Name,就写df_filtered = df1[['Author_Name', 'Ticker Name']]
  • 提取指定行:如果是按位置取Excel的第1-3行(对应Pandas的0-2索引),用iloc(位置索引):df_filtered = df_filtered.iloc[0:3];如果是按行标签筛选,先确认行索引再用loc。

3. 保存为CSV

用to_csv时指定编码、分隔符,去掉索引。

完整代码示例

import pandas as pd

# 定义文件路径
xlsx_file = "你的文件路径.xlsx"
csv_output_path = "输出的CSV文件路径.csv"

# 读取指定工作表
xls = pd.ExcelFile(xlsx_file)
df = pd.read_excel(xls, "Sheet1")  # 默认header=0,即第一行为表头

# 筛选需要的列(替换成你实际需要的字段名)
target_columns = ['Author_Name', 'Ticker Name']
df_filtered = df[target_columns]

# 如果需要筛选指定行,比如取前3行(对应Excel的第1-3行)
# df_filtered = df_filtered.iloc[0:3]  # 取消注释启用

# 保存为CSV
df_filtered.to_csv(csv_output_path, sep=',', encoding='utf-8', index=False)

额外注意事项

  • 如果你的Excel表头不是第一行,比如在第2行,读取时要加header=1:pd.read_excel(xls, "Sheet1", header=1)
  • 如果Excel里有合并单元格、空行等,建议先清理数据再处理,避免列名识别错误
  • 若要按Excel的行号(1-based)筛选,比如取第5到10行,对应Pandas的iloc[4:10](因为0-based)

内容的提问来源于stack exchange,提问作者Gagan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 20:47:23