如何将嵌套在DataFrame列中的列表展开到它们自己的列

时间:2015-09-04 02:43:02

标签: python list pandas dataframe

我刚刚开始使用Python的Pandas库,而且我遇到了一个我无法解决的问题。

require('path/file.jpg')

所以输出是:

dictionary = {key:list}
series = pd.Series(dictionary)
dataframe = pd.DataFrame(series)
print(dataframe)

我想获取该列表并让列表中的每个值都拥有它自己的列,如下所示:

    0
key list
key list
key list
key list

我将如何做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以直接从字典中创建DataFrame,但在创建时,keys将成为列,0 / 1等会成为索引,如果您需要反之亦然 - keys作为索引,0 / 1等作为列 - 然后您可以进行转置。

请注意,列表中的所有键都应具有相同数量的元素。

代码 -

dataframe = pd.DataFrame(dictionary).T

示例/演示 -

In [1]: import pandas as pd

In [2]: d = {'key1':[1,2,3,4],'key2':[2,3,4,5],'key3':[3,4,5,6]}

In [3]: df = pd.DataFrame(d).T

In [4]: df
Out[4]:
      0  1  2  3
key1  1  2  3  4
key2  2  3  4  5
key3  3  4  5  6

答案 1 :(得分:1)

您可以完成此任务的一种方法是完全跳过创建一个pandas系列,然后直接转到DataFrame,然后转置数据框:

In [1]: import pandas as pd

In [2]: dict = {1: ['val0', 'val1', 'val2', 'val3', 'val4'],
   ...:         2: ['val0', 'val1', 'val2', 'val3', 'val4'],
   ...:         3: ['val0', 'val1', 'val2', 'val3', 'val4'],
   ...:         4: ['val0', 'val1', 'val2', 'val3', 'val4']}

将字典读入DataFrame,然后将其转置为.Ttranspose()

In [3]: df = pd.DataFrame(dict).T

In [4]: df
Out[4]: 
      0     1     2     3     4
1  val0  val1  val2  val3  val4
2  val0  val1  val2  val3  val4
3  val0  val1  val2  val3  val4
4  val0  val1  val2  val3  val4