【问题标题】:Create data frame from multiple lists of same length从多个相同长度的列表创建数据框
【发布时间】:2020-10-06 15:13:12
【问题描述】:

我有一个这样的列表,

l1=[1,2,3,4,5]
l2=[6,7,8,9,10]
l3=[11,12,13,14,15]
l4=[16,17,18,19,20]

现在我想从上面的列表中创建一个数据框,其中 l1、l2、l3、l4 将是行,这些行的元素将是列值,所以最终的数据框看起来像,

col1    col2    col3    col4    col5
  1       2       3       4       5
  6       7       8       9       10
  11      12      13      14      15
  16      17      18      19      20

我可以在每个列表中使用 for 循环并在每个列中使用元素明智的选择来做到这一点,但是执行时间会更长,寻找一些 pandas 快捷方式来更有效地做到这一点

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:
    >>> l1=[1,2,3,4,5]
    >>> l2=[6,7,8,9,10]
    >>> l3=[11,12,13,14,15]
    >>> l4=[16,17,18,19,20]
    >>> data = [l1,l2,l3,l4]
    >>> import pandas as pd
    >>> df = pd.DataFrame(data=data, columns=[f'col_{i}' for i in range(1, len(data)+2)])
    >>> df
       col_1  col_2  col_3  col_4  col_5
    0      1      2      3      4      5
    1      6      7      8      9     10
    2     11     12     13     14     15
    3     16     17     18     19     20
    

    【讨论】:

      【解决方案2】:

      方法如下:

      import pandas as pd
      
      l1=[1,2,3,4,5]
      l2=[6,7,8,9,10]
      l3=[11,12,13,14,15]
      l4=[16,17,18,19,20]
      
      d = {'col1':l1,'col2':l2,'col3':l3,'col4':l4}
      
      df = pd.DataFrame(d)
      
      print(df.to_string(index=False))
      

      输出:

       col1  col2  col3  col4
          1     6    11    16
          2     7    12    17
          3     8    13    18
          4     9    14    19
          5    10    15    20
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-18
        • 2022-08-03
        • 1970-01-01
        • 2017-10-10
        • 1970-01-01
        相关资源
        最近更新 更多