首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向excel工作表中添加数据帧

向excel工作表中添加数据帧
EN

Stack Overflow用户
提问于 2014-09-20 19:18:40
回答 1查看 1.2K关注 0票数 1

在从一个巨大的csv文件中读取数据后,我正在尝试使用panda.ExcelWriter编写一个数据格式以进行excel操作。

此代码更新excel工作表,但它没有将数据附加到我想要的excel中

代码语言:javascript
复制
import pandas as pd 

reader = pd.read_csv("H:/ram/temp/1.csv", delimiter = '\t' ,chunksize = 10000, names = ['neo_user_id', 
    'gender',
    'age_range',
    'main_geolocation', # (user identifier of the client)
    'interest_category_1',
    'interest_category_2',
    'interest_category_3',
    'first_day_identifier'
    ],  encoding="utf-8")

ew = pd.ExcelWriter('H:/ram/Formatted/SynthExport.xlsx', engine='xlsxwriter', options={'encoding':'utf-8'})
for chunks in reader:
    chunks.to_excel(ew, 'Sheet1' , encoding = 'utf-8')
    print len(chunks)
ew.save()

我还尝试使用data.append()data.to_excel,这样做的结果是内存错误。由于我是在大块地读取数据,有什么方法可以将这些数据写入excel

我让它按照这个代码工作

代码语言:javascript
复制
import pandas as pd 
import xlsxwriter
reader = pd.read_csv("H:/ram/user_action_export.2014.01.csv", delimiter = '\t', chunksize = 1000, names = ['day_identifier', 
    'user_id',
    'site_id',
    'device', # (user identifier of the client)
    'geolocation',
    'referrer',
    'pageviews',
    ],  encoding="utf-8")

startrows = 0
ew = pd.ExcelWriter('H:/ram/Formatted/ActionExport.xlsx', engine='xlsxwriter', options={'encoding':'utf-8'})

for chunks in reader:
    chunks.to_excel(ew, 'Sheet1' , encoding = 'utf-8', startrow = startrows)
    startrows = startrows + len(chunks)
    print startrows 

ew.save()

但还是要花那么多时间

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-20 21:45:05

我不知道这是否导致了主要问题,但是您不应该在块之间调用save(),因为对save()的单个调用关闭了一个xlsxwriter文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25952429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档