Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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 如何从包含数组的值的字典中生成数据帧?_Python_Pandas_Dataframe_Numpy_Numpy Ndarray - Fatal编程技术网

Python 如何从包含数组的值的字典中生成数据帧?

Python 如何从包含数组的值的字典中生成数据帧?,python,pandas,dataframe,numpy,numpy-ndarray,Python,Pandas,Dataframe,Numpy,Numpy Ndarray,目前我有一个字典,每个键有一个数组(有许多列表)。我想把这本字典变成一个数据帧。这是字典当前的样子: 但是,我希望它的格式如下: title A C mC G T 000805ef-05c0-40d8-be27-a88ad2932a68 255 255 0 255 255 000805ef-05c0-40d8-be27-a88ad2932a68 255

目前我有一个字典,每个键有一个数组(有许多列表)。我想把这本字典变成一个数据帧。这是字典当前的样子:

但是,我希望它的格式如下:

title                                  A       C      mC      G      T
000805ef-05c0-40d8-be27-a88ad2932a68  255     255     0      255    255
000805ef-05c0-40d8-be27-a88ad2932a68  255     20      235    255    255
......
00723b5f-95a1-44c4-93b5-ba4adb8ea5b7  255     255     0      255    255


我试着简单地使用pd.DataFrame(dict),但没有成功。我还尝试了dict(dict)中的pd.DataFrame。我认为在转换之前,我需要更多地操作字典,以了解我希望它在数据帧中的外观。任何帮助都将不胜感激

您可以
vstack
值,并
重复
键:

# dictionary with numpy arrays as values
d = {
    'a': np.ones((2, 3), dtype=np.int),
    'b': np.eye(3, dtype=np.int),
}

df = pd.DataFrame(
    np.vstack(list(d.values())),
    index = np.repeat(
        list(d.keys()),
        [len(x) for x in d.values()]
    ),
    columns = ['x', 'y', 'z']
)

df
输出:

   x  y  z
a  1  1  1
a  1  1  1
b  1  0  0
b  0  1  0
b  0  0  1

应该是
列表(d.values())
?as:“FutureWarning:要堆栈的数组必须作为”序列传递“输入列表或元组…:@gbox有趣,我一开始并没有收到这个警告,但是的,你完全正确。”。我已经更新了我的答案。非常感谢。谢谢你!它让它工作,但它的标题作为一个索引列。有没有办法让它看起来一样,但将索引列转换为实际的名为“titles”的列?当然,只需添加
df=df.reset_index()
Awesome,非常感谢!真的帮助了我,也帮助了我明白接下来该做什么。