【问题标题】:Python using pandas to convert xlsx to csv file. How to delete index column?Python 使用 pandas 将 xlsx 转换为 csv 文件。如何删除索引列?
【发布时间】:2017-07-14 08:00:04
【问题描述】:

我正在使用以下代码将 .xlsx 文件转换为 .csv 文件。

import pandas as pd
data_xls = pd.read_excel('excelfile.xlsx', 'Sheet2', index_col=None)
data_xls.to_csv('csvfile.csv', encoding='utf-8')

代码正在运行,但是我得到了一个索引列,其中包含我不想要的单元格编号。无论如何不包括或删除该索引列?

文件输出

 Unnamed  Data
    0   0.99319613
    1   0.99319613
    2   0.99319613
    3   0.99319613
    4   0.99319613
    5   0.99319613

【问题讨论】:

标签: python python-3.x pandas


【解决方案1】:

pandas.DataFrame.to_csv() 的文档中所述,只需将index=False 作为关键字参数传递即可排除行名。

data_xls.to_csv('csvfile.csv', encoding='utf-8', index=False)

【讨论】:

    【解决方案2】:

    受miradulo启发并修复了一个数字转换问题:

    import pandas as pd
    data_xls = pd.read_excel('excelfile.xlsx', 'Sheet2', dtype=str, index_col=None)
    data_xls.to_csv('csvfile.csv', encoding='utf-8', index=False)
    

    如果只有一张纸,则可以删除“Sheet2”。 dtype=str 避免数字转换。

    【讨论】:

      【解决方案3】:

      我刚刚在here 的另一个 SO 问题中回答了一个可以完成工作的函数。

      由于xlrd 库已弃用,我不得不使用openpyxl 库将xlsx 格式转换为csv
      为了使用下面的功能,别忘了从here 安装openpyxl 库。

      功能:

      import os
      import pathlib
      import pandas as pd
      
      # Function to convert excel spreadsheet into csv format
      def Excel_to_csv():
          # Excel file full path
          excel_file = os.path.join(os.path.sep, pathlib.Path(__file__).parent.resolve(), "Excel_Spreadsheet.xlsx")    
          # Excel sheets
          excel_sheets = ['Sheet1', 'Sheet2', 'Sheet3']
      
          for sheet in excel_sheets:
              # Create dataframe for each sheet
              df = pd.DataFrame(pd.read_excel(excel_file, sheet, index_col=None, engine='openpyxl'))
              # Export to csv. i.e: sheet_name.csv
              df.to_csv(os.path.join(os.path.sep, pathlib.Path(__file__).parent.resolve(), sheet + '.csv'), sep=",", encoding='utf-8', index=False, header=True)
      
      # Runs the excel_to_csv function:
      Excel_to_csv()
      

      【讨论】:

      • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
      • @Tomerikoo 感谢您的提示,我正在寻找链接相同答案的最佳方法,而不是仅仅复制和粘贴,但我会立即进行编辑。
      • 如果您认为这个问题是重复的并且已经回答,您应该将其标记为重复。如果问题不重复,请调整您对该特定问题的回答。不要只是多次发布类似的答案
      猜你喜欢
      • 2018-08-02
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 2023-01-11
      • 2020-07-28
      • 2021-11-21
      相关资源
      最近更新 更多