gpt4 book ai didi

python - 从 .npy 文件制作 pandas 数据框

转载 作者:行者123 更新时间:2023-12-01 03:37:11 25 4
gpt4 key购买 nike

我正在尝试从 .npy 文件创建一个 pandas 数据帧,当使用 np.load 读取该文件时,会返回一个包含字典的 numpy 数组。我最初的本能是提取字典,然后使用 pd.from_dict 创建一个数据帧,但这每次都会失败,因为我似乎无法从 np.load 返回的数组中获取字典。看起来只是 np.array([dictionary, dtype=object]),但我无法通过索引数组或类似的东西来获取字典。我也尝试过使用 np.load('filename').item() 但结果仍然没有被 pandas 识别为字典。

或者,我尝试了 pd.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()) 看起来与此类似;

{'user_c': 'id_003', 'user_a': 'id_001', 'user_b': 'id_002'}

因此,如果您需要使用上面的字典得出如下所示的 DataFrame;

  user_name user_id
0 user_c id_003
1 user_a id_001
2 user_b id_002

您可以使用;

df = pd.DataFrame(list(x.item().iteritems()), columns=['user_name','user_id'])
<小时/>

如果您有如下所示的字典列表;

users = [{'u_name': 'user_a', 'u_id': 'id_001'}, {'u_name': 'user_b', 'u_id': 'id_002'}]

您可以简单地使用

df = pd.DataFrame(users)

提出一个类似于以下的 DataFrame;

     u_id  u_name
0 id_001 user_a
1 id_002 user_b
<小时/>

好像你有一本与此类似的字典;

data = {
'Center': [[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]],
'Vpeak': [1.1, 2.2],
'ID': ['id_001', 'id_002']
}

在这种情况下,您可以简单地使用;

df = pd.DataFrame(data)  # df = pd.DataFrame(file_dict.item()) in your case

提出一个类似于以下的 DataFrame;

    Center          ID      Vpeak
0 [0.1, 0.2, 0.3] id_001 1.1
1 [0.4, 0.5, 0.6] id_002 2.2
<小时/>

如果字典中有 ndarray,请执行一些类似于下面的预处理;并用它来创建 df;

for key in data:
if isinstance(data[key], np.ndarray):
data[key] = data[key].tolist()

df = pd.DataFrame(data)

关于python - 从 .npy 文件制作 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40201026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com