用pandas读取具有相同列名的excel

问题描述 投票:0回答:1

我正在尝试将 Excel 转换为 csv。 Excel 具有以下标题 -

DATE,FIELD1,FEEDER BRANCH,50,100,200,500,1000,2000,FIELD2,50,100,200,500,1000,2000,FIELD3,50,100,200,500,1000,2000

如图所示,有些列是重复的。使用 pandas 加载 Excel 时,它会在其中附加一个索引号。例如。重复时,

50 becomes 50.1, 100 becomes 100.1
...等等。

如何加载没有这个后缀的Excel。我希望 col 标题保持原样,以便在写入 csv 时,保留相同的标题。

当前代码:

def pandas_csv_from_excel(source):
  dir_and_file = source.split('/')
  filename = dir_and_file[len(dir_and_file) - 1].split('.')
  if not ((filename[1]).lower().startswith('xls')):
    return source

  csv_filename = f"{os.path.join(os.path.dirname(source), filename[0].lower())}.csv"
  location = os.path.dirname(source)
  df = pd.read_excel(source, index_col=None)
  df.to_csv(csv_filename, index=None)
  return csv_filename
python excel pandas csv
1个回答
0
投票

尝试使用标头参数为 None

import pandas as pd


df = pd.read_excel('path/to/file.xlsx', header=None)

df.columns = df.iloc[0]  # Set the column names to the first row
df = df[1:] 

df.reset_index(drop=True, inplace=True)

df.to_csv('output.csv', index=False)
© www.soinside.com 2019 - 2024. All rights reserved.