字典中列表作为值的DataFrame

3 投票
1 回答
1392 浏览
提问于 2025-04-17 15:28

这可能不是使用数据框的正确方法,但我有一个字典,里面的值是一些项目的列表。比如:

my_dict = {'a':[1,2,3], 'b':[3,4,5]}

我想创建一个数据框,索引是字典的键,只有一列,列里的值就是那个列表。我希望看到这样的输出:

In [69]: my_df
Out[69]: 
              0
a     [1, 2, 3]
b  [3, 4, 5, 6]

我到目前为止最接近的做法是把字典的值改成一个列表的列表,然后使用转置。有没有更好的方法呢?

In [64]: my_dict = {'a':[[1,2,3]], 'b':[[3,4,5,6]]}

In [65]: my_df = pd.DataFrame(my_dict)

In [66]: print my_df
           a             b
0  [1, 2, 3]  [3, 4, 5, 6]

In [67]: my_df.T
Out[67]: 
              0
a     [1, 2, 3]
b  [3, 4, 5, 6]

谢谢你的帮助!

1 个回答

3
import pandas as pd

my_dict = {'a':[1,2,3], 'b':[3,4,5]}

pd.DataFrame([[i] for i in my_dict.values()],index=my_dict)
Out[3]: 
           0
a  [1, 2, 3]
b  [3, 4, 5]

不过你现在得到的更像是一个 Series,而不是一个 DataFrame

pd.Series(my_dict)
Out[4]: 
a    [1, 2, 3]
b    [3, 4, 5]

如果需要的话,你可以把它转换成一个 DataFrame

pd.DataFrame(pd.Series(my_dict))
Out[5]: 
           0
a  [1, 2, 3]
b  [3, 4, 5]

撰写回答