【问题标题】:Generating a dataframe from a list of arrays and a list?从数组列表和列表生成数据框?
【发布时间】:2021-05-31 02:22:36
【问题描述】:

我有以下列表和 numpy 数组列表:

x = [np.array([5.50000002, 6.69999989]),
 np.array([4.83736559, 7.        ]),
 np.array([0.44784402, 1.49999997, 4.18910619]),
 np.array([0.1       , 2.30000004, 3.30995852])]

y = [2, 3, 4, 5]

我想生成以下格式的 pandas 数据框:

df = 
x          y
5.50000002 2
6.69999989 2
4.83736559 3
7          3
0.44784402 4
1.49999997 4
4.18910619 4
0.1        5
2.30000004 5
3.30995852 5

当我预计 x 和 y 非常大时,最快的方法是什么?

【问题讨论】:

    标签: arrays pandas list dataframe numpy


    【解决方案1】:

    让我们试试explode

    out = pd.DataFrame({'x':x,'y':y}).explode('x')
    Out[17]: 
              x  y
    0       5.5  2
    0       6.7  2
    1   4.83737  3
    1         7  3
    2  0.447844  4
    2       1.5  4
    2   4.18911  4
    3       0.1  5
    3       2.3  5
    3   3.30996  5
    

    【讨论】:

      【解决方案2】:

      试试concatenaterepeat

      pd.DataFrame({'x':np.concatenate(x), 
                    'y':np.repeat(y,[len(a) for a in x])})
      

      输出:

                x  y
      0  5.500000  2
      1  6.700000  2
      2  4.837366  3
      3  7.000000  3
      4  0.447844  4
      5  1.500000  4
      6  4.189106  4
      7  0.100000  5
      8  2.300000  5
      9  3.309959  5
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-10-29
        • 1970-01-01
        • 1970-01-01
        • 2019-06-12
        • 2020-06-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多