微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐