我试图从一个.npy文件创建一个pandas数据帧,当使用np.load读入时,该文件返回一个包含字典的numpy数组。我最初的直觉是提取字典,然后使用pd.from_dict创建数据帧,但每次都失败,因为我似乎无法从np.load返回的数组中获取字典。它看起来只是np.array([dictionary,dtype=object]),但我无法通过索引数组或类似的方式获取字典。我也尝试过使用np.load('filename').item(),但熊猫仍然无法将结果识别为字典。
或者,我试过警局的read_pickle,但也没用。
我怎样才能把这个.npy字典放到我的数据框中?这是不断失败的代码。。。
import pandas as pd
import numpy as np
import os
targetdir = '../test_dir/'
filenames = []
successful = []
unsuccessful = []
for dirs, subdirs, files in os.walk(targetdir):
for name in files:
filenames.append(name)
path_to_use = os.path.join(dirs, name)
if path_to_use.endswith('.npy'):
try:
file_dict = np.load(path_to_use).item()
df = pd.from_dict(file_dict)
#df = pd.read_pickle(path_to_use)
successful.append(path_to_use)
except:
unsuccessful.append(path_to_use)
continue
print str(len(successful)) + " files were loaded successfully!"
print "The following files were not loaded:"
for item in unsuccessful:
print item + "\n"
print df
假设加载
.npy
后,项(np.load(path_to_use).item()
)看起来与此类似所以,如果你需要使用上面的字典来产生如下的数据帧
你可以使用
如果你有下面这样的字典列表
你可以简单地使用
提出一个类似的数据帧
好像你有一本类似的字典
在这种情况下,您可以简单地使用
提出一个类似的数据帧
如果dict中有
ndarray
,请执行与下面类似的预处理;并使用它创建df相关问题 更多 >
编程相关推荐