Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从hdf5-'检索具有稀疏数据的大帧;非类型';对象是不可忽略的错误_Python_Pandas - Fatal编程技术网

Python 从hdf5-'检索具有稀疏数据的大帧;非类型';对象是不可忽略的错误

Python 从hdf5-'检索具有稀疏数据的大帧;非类型';对象是不可忽略的错误,python,pandas,Python,Pandas,我在脚本中使用pandas已经有一段时间了,尤其是以易于访问的方式存储大型数据集。几天前我偶然发现了这个问题,到目前为止还没有解决 问题是,在我将一个巨大的数据帧存储到hdf5文件中后,当我稍后将其加载回时,它有时会有一个或多个列(仅来自对象类型列)完全无法访问,并返回“NoneType object is not iterable”错误 虽然我在内存中使用框架,但没有问题,即使数据集比下面的示例稍大。值得一提的是,框架包含多个datetime列或多个datetime列,以及string、cha

我在脚本中使用pandas已经有一段时间了,尤其是以易于访问的方式存储大型数据集。几天前我偶然发现了这个问题,到目前为止还没有解决

问题是,在我将一个巨大的数据帧存储到hdf5文件中后,当我稍后将其加载回时,它有时会有一个或多个列(仅来自对象类型列)完全无法访问,并返回“NoneType object is not iterable”错误

虽然我在内存中使用框架,但没有问题,即使数据集比下面的示例稍大。值得一提的是,框架包含多个datetime列或多个datetime列,以及string、char和integer列。所有非对象列都可能且确实缺少值

起初我以为我是在“object type”列中保存“NA”值。然后我尝试更新到最新版本(0.9.1)。到目前为止,一切都不起作用

我已经能够用以下代码重现错误:

将熊猫作为pd导入
将numpy作为np导入
导入日期时间
#获取今天的虚拟机时间戳
time\u now=datetime.datetime.today()
start_vms=datetime.datetime(1858,11,17)
t_delta=(现在时间-启动虚拟机)
vms_time=t_delta.total_seconds()*10000000
#生成测试帧(密集)
测试记录=[]
vms\u时间1=vms\u时间
vms_时间2=vms_时间
对于范围内的i(2000000):
vms_time1+=15*np.random.randn()
vms_time2+=25*np.random.randn()
vms_time_diff=vms_time2-vms_time1
string1='xxxxxxxxx'
string2='xxxxxxxxx'
string3='XXXXX'
string4='XXXXX'
char1='A'
char2='B'
char3='C'
char4='D'
number1=np.random.randint(1,10)
number2=np.random.randint(1100)
number3=np.random.randint(11000)
test_records.append((char1,string1,vms_time1,number1,char2,string2,vms_time2,number2,char3,string3,vms_timediff,number3,char4,string4))
df=pd.DataFrame(测试_记录,列=[“列_1”、“列_2”、“列_3”、“列_4”、“列_5”、“列_6”、“列_7”、“列_8”、“列_9”、“列_10”、“列_11”、“列_12”、“列_13”、“列_14”])
#生成测试帧(稀疏)
测试记录=[]
vms\u时间1=vms\u时间
vms_时间2=vms_时间
计数=0
对于范围内的i(2000000):
如果(计数%23==0):
vms_time1+=15*np.random.randn()
string1='xxxxxxxxx'
string2=''
string3='XXXXX'
string4='XXXXX'
char1='A'
char2='B'
char3='C'
char4='D'
编号1=无
number2=np.random.randint(1100)
number3=np.random.randint(11000)
test_records.append((char1,string1,vms_time1,number1,char2,None,None,number2,char3,string3,None,number3,None,string4))
其他:
vms_time1+=15*np.random.randn()
vms_time2+=25*np.random.randn()
vms_time_diff=vms_time2-vms_time1
string1='xxxxxxxxx'
string2='xxxxxxxxx'
string3='XXXXX'
string4='XXXXX'
char1='A'
char2='B'
char3='C'
char4='D'
number1=np.random.randint(1,10)
number2=np.random.randint(1100)
number3=np.random.randint(11000)
test_records.append((char1,string1,vms_time1,number1,char2,string2,vms_time2,number2,char3,string3,vms_timediff,number3,char4,string4))
计数+=1
df1=pd.DataFrame(测试_记录,列=[“列_1”、“列_2”、“列_3”、“列_4”、“列_5”、“列_6”、“列_7”、“列_8”、“列_9”、“列_10”、“列_11”、“列_12”、“列_13”、“列_14”])
store_loc=“文件的某个位置”
h5仓库=pd.HDFStore(仓库位置)
h5_商店['df1']=df
h5_商店['df2']=df1
h5_商店关闭()
当我现在尝试从此存储加载时,“df1”的行为正常,但“df2”产生以下错误:

TypeError: 'NoneType' object is not iterable

这可能是一个错误,在这种情况下,它可能值得询问。。。