Python – Pandas – 将数据帧写入CSV

我正在尝试使用pandas将4个表,3列和50行数据帧文件写入csv.我收到以下错误:AttributeError:’dict’对象没有属性’to_csv’.我相信我正在正确地编写语法,但有人能指出我的语法在尝试将数据帧写入csv时不正确吗?

'dict' object has no attribute 'to_csv'

import pandas as pd
import numpy as np

df = pd.read_excel("filelocation.xlsx",
    sheetname=['pnl1 Data ','pnl2 Data','pnl3 Data','pnl4 Data'],
    skiprows=8, parse_cols="B:D", keep_default_na='FALSE', na_values=['NULL'])

df.to_csv('filelocation.csv', line_terminator=',', index=False, header=False) #error occurs on this line

解决方法:

你的直觉是正确的;代码中的语法没有错.

您正在接收AttributeError,因为您正在从工作簿中的多个工作表中读取数据,生成DataFrames的字典(而不是一个DataFrame),您可以从中尝试to_csv(一种仅适用于DataFrame的方法).

在编写代码时,您生成的字典的键对应于工作表的名称,值是相应的DataFrame.这一切都在read_excel()方法的文档中进行了解释.

要编写包含所有工作表中的聚合数据的csv文件,您可以遍历工作表并将每个DataFrame附加到您的文件中(如果您的工作表具有相同的结构和尺寸,这将起作用):

import pandas as pd
import numpy as np

sheets = ['pnl1 Data ','pnl2 Data','pnl3 Data','pnl4 Data']

for sheet in sheets:
    df = pd.read_excel("filelocation.xlsx",
        sheetname=sheet,
        skiprows=8, 
        parse_cols="B:D", 
        keep_default_na='FALSE', 
        na_values=['NULL'])

    with open('filelocation.csv', 'a') as f:
        df.to_csv(f, line_terminator=',', index=False, header=False)

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...