DataFrame.to_json()的分段错误

时间:2016-01-27 03:47:53

标签: python pandas segmentation-fault

我有一个Python代码可以正常使用有20行的文件,但是当我尝试发送带有60.000条记录的同一文件时,它会显示&#34; 108936分段错误&#34;。< / p>

有没有办法避免这个错误,这是我的机器吗?或者有更好的方法来做到这一点?我使用Pandas因为我需要有时合并到DataFrame(pd.merge())。

这是我的代码:

import pandas as pd
import json

columns = [u'SalesOrderID', u'OrderDate', u'DueDate', u'ShipDate', u'SalesOrderNumber', u'Title', u'FirstName', u'MiddleName', u'LastName', u'Suffix', u'PhoneNumber', u'PhoneNumberType', u'EmailAddress', u'EmailPromotion', u'AddressType', u'AddressLine1', u'AddressLine2', u'City', u'StateProvinceName', u'PostalCode', u'CountryRegionName', u'SubTotal', u'TaxAmt', u'Freight', u'TotalDue', u'UnitPrice', u'ProductName', u'ProductSubcategory', u'ProductCategory']
data = pd.read_csv('../Uploads/TxtData.txt', header=0, names=columns, sep='\t')
data.to_json(orient='records')

使用的文件:

Little File

Big File

1 个答案:

答案 0 :(得分:0)

DataFrame.to_json中存在一个已知问题。

https://github.com/pandas-dev/pandas/issues/14256#issuecomment-249583941

解决这个问题的唯一方法是使用default_handler将对象转换为标准的json数据类型。我不知道txt.data中有什么,我不知道csv文件中有什么可能是异乎寻常的,但你需要一个default_handler。