Python 保存到csv数据透视表获取错误“;流程结束,退出代码为139“;
我有一个关于熊猫的问题。 我是熊猫的新手,我不明白是什么导致了这个错误。我在网上和stackoverflow上搜索答案,但找不到任何相关信息Python 保存到csv数据透视表获取错误“;流程结束,退出代码为139“;,python,csv,pandas,Python,Csv,Pandas,我有一个关于熊猫的问题。 我是熊猫的新手,我不明白是什么导致了这个错误。我在网上和stackoverflow上搜索答案,但找不到任何相关信息 from pandas import read_csv, pivot_table f_csv = read_csv(filepath_or_buffer=file_dir, delimiter=';') res_pivot = pivot_table(f_csv, index=['nome_ua'], columns=['attivita_descrizi
from pandas import read_csv, pivot_table
f_csv = read_csv(filepath_or_buffer=file_dir, delimiter=';')
res_pivot = pivot_table(f_csv, index=['nome_ua'], columns=['attivita_descrizione'], values=['produzione_data_inizio', 'produzione_data_fine'], aggfunc=lambda x: x)
res_pivot.to_csv('/tmp/result.csv', sep=';', quotechar='"')
CSV文件有344行7列。
我使用的是TurboGears 2.3.5,在调用时,主进程将以以下消息终止:进程已完成,退出代码为0
这是非常奇怪的,所以我对ipython也做了同样的操作,取而代之的是这样一条消息:进程完成,退出代码139
。139似乎表示“无效内存访问”(SIGSEGV)
在寻找类似错误的解决方案后,我将最后一行更改为:
res_pivot.to_csv('/tmp/result.csv', sep=';', quotechar='"', chunksize=10)
但结果仍然是一样的
res_pivot.head()的内容:(它真的很大)
res_pivot.columns的内容:
MultiIndex(levels=[[u'produzione_data_inizio', u'produzione_data_fine'], [u'Bovini - Allevamento autoconsumo', u'Bovini - Da riproduzione', u'Bovini - Ingrasso', u'Bovini - Linea vacca vitello', u'Bovini - Produzione latte']],
labels=[[0, 0, 0, 0, 0, 1, 1, 1, 1, 1], [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]],
names=[None, u'attivita_descrizione'])
最后一行
使用了res_pivot.tail()和res_pivot.value[0:[250:]
我试着在CSV中只留下5行,一切都很好
你能帮我吗?
谢谢您的问题在于:aggfunc=lambda x:x
这不是一个聚合函数,只是在获取值时返回值。aggfunc
参数应该得到一个函数,用于在pivot_table
中给定的索引
和列
组合给出多个值的情况下进行聚合。因为不聚合它们,所以最终会得到一个包含数组作为元素的数据帧。显然,to_csv
to_csv会被这一点扼杀
要解决这个问题,您需要提供一个聚合函数(默认值为取平均值)。由于您没有数值,因此有可能采用第一个值(aggfunc='first'
适用于此,因为“first”是采用第一个值的函数的公认快捷方式)。使用此选项,它不会崩溃:
In [10]: res_pivot = pd.pivot_table(f_csv, index=['nome_ua'],
columns=['attivita_descrizione'],
values=['produzione_data_inizio', 'produzione_data_fine'],
aggfunc='first')
In [11]: res_pivot.to_csv('tmp_result.csv', sep=';', quotechar='"')
请张贴“res_pivot”数据框的标题。@lanenok补充了问题,谢谢。如果您查看数据,第344行或第345行是否有异常情况?也许会显示这些行?@joris我看到在pivot模式下有272行。除此之外,感谢您是否可以/允许我发布您尝试编写的数据的全部内容?你用的是什么版本的熊猫?很好用,如果我想在同一个单元格中写“produzione_data_inazio”和“produzione_data_fine”?而不是复制头?。无论如何,谢谢“在同一单元格中”是什么意思?我的意思是我想在同一单元格中连接“produzione_data_inazio”和“produzione_data_fine”,而不是在列中拥有每一列的副本。我将如何做到这一点?