执行pandas to_hdf时出现错误消息“Exception:找不到正确的atom类型”

时间:2015-05-07 12:27:26

标签: string python-3.x pandas hdf5

我想将数据帧df保存到.h5文件MainDataFile.h5:

df.to_hdf ("c:/Temp/MainDataFile.h5", "MainData", mode = "w", format = "table", data_columns=['_FirstDayOfPeriod','Category','ChannelId'])

并收到以下错误:

  

***异常:找不到正确的原子类型 - > > [dtype-> object,items-> Index(['Libellé_Article','Libellé_segment'],dtype ='object')]

现在,如果我从df(这是一个字符串列)中删除列'Libellé_Article',我就不会再收到错误消息了。

这个专栏可能有什么问题?我怀疑其中有一个特殊的,禁止的角色,但到目前为止无法找到它。

更新1

根据Jeff的评论,我试图对“Libellé_Article”栏目进行编码:

df['Libellé_Article'] = df['Libellé_Article'].str.encode('utf-8')

该列现在显示如下:

df['Libellé_Article']
0                                               b'PAPETERIE'
2                                    b'NR CONTRIBUTION DEEE'
4                                         b'NON UTILISE 103'
7                         b"L'ENFANT SOUS TERREUR/MILLER A."
10                 b'ENERGIE VITALE ET AUTOGUERISON/CHIA M.'
12         b'ENERGIE COSMIQUE CETTE PUISSANCE QUI EST EN ...
13         b'ENERGIE COSMIQUE CETTE PUISSANCE QUI EST EN ...
18                     b"COMMENT ATTIRER L'ARGENT/MURPHY J."
19                     b"COMMENT ATTIRER L'ARGENT/MURPHY J."

当我执行命令to_hdf时,我得到:

  

*** TypeError:无法序列化[Libellé_Article]列,因为   其数据内容为[mixed] object dtype

1 个答案:

答案 0 :(得分:1)

这将在py2中起作用。对于py3,这应该不受编码步骤的影响。 这实际上是一个“混合”列,因为它包含字符串和unicode。

String