【问题标题】:How to expand lists nested in DataFrame columns to their own columns如何将嵌套在 DataFrame 列中的列表扩展到它们自己的列
【发布时间】:2015-11-30 02:15:15
【问题描述】:

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

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

所以输出是:

    0
key list
key list
key list
key list

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

       0    1    2    3    4
key val0 val1 val2 val3 val4
key val0 val1 val2 val3 val4
key val0 val1 val2 val3 val4
key val0 val1 val2 val3 val4

我该怎么做呢?

【问题讨论】:

    标签: python list pandas dataframe


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      您可以完成此操作的一种方法是完全跳过创建熊猫系列,直接进入数据帧,然后转置数据帧:

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-11
        • 2019-06-27
        • 2016-12-01
        • 2015-04-13
        • 1970-01-01
        • 2019-06-27
        • 1970-01-01
        • 2018-07-04
        相关资源
        最近更新 更多