【问题标题】:Convert a list into a DataFrame将列表转换为 DataFrame
【发布时间】:2022-01-07 03:57:59
【问题描述】:

我需要将我的 list 转换为 3 列 pandas DataFrame(time、id 和 ret_exc_lead1m)。

然而它看起来像这样:

 [time        id            
 2010-01     comp_001661_01W   -0.041371
             comp_002410_04W   -0.053836
             comp_004367_02W    0.024752
             comp_004439_08W    0.013136
             comp_011749_09W   -0.013695
             comp_011925_01W    0.043677
 2010-02     comp_001661_01W   -0.041371
             comp_012384_14W   -0.014593
             comp_013498_01W    0.060748
             comp_015321_02W   -0.053604
             comp_015334_02W   -0.155894
 2010-03     comp_001661_01W   -0.041371
             comp_015532_10W    0.003835
             comp_015575_01W   -0.045820
             comp_015576_01W    0.032070
             comp_015598_03W    0.028164
             comp_015617_02W   -0.053060
             comp_015634_05W    0.102842
             comp_018636_04W   -0.029271
 2010-04     comp_001661_01W   -0.041371
             comp_019349_01W   -0.048753
             comp_019565_13W   -0.007516
             comp_025648_05W   -0.015128
             comp_029097_01W    0.085202
             comp_029804_04W   -0.011097
 2010-05     comp_001661_01W   -0.041371
             comp_030807_03W   -0.139678
             comp_031137_03W   -0.042764
             comp_031142_05W    0.055970
             comp_062806_93W   -0.104863
             comp_063914_02W    0.044195
             comp_063987_91W   -0.010617
 2010-06     comp_001661_01W   -0.041371
             comp_064835_03W    0.020164
             comp_064835_90W    0.047719
             comp_065248_07W   -0.045530
  Name: ret_exc_lead1m, dtype: float32]

我想知道是否有办法做到这一点。

【问题讨论】:

  • 你的list的格式是什么?在尝试转换之前它的结构如何?
  • 这无论如何都不是符合 python 的列表格式。 minimal reproducible example 请联系How to Ask。
  • @PatrickArtner:它确实是一个列表,但包含一个熊猫系列作为单个元素......

标签: python pandas list dataframe


【解决方案1】:

这取决于您的输入列表的维度。基本上,如果您的列表只有一维,那么转换将如下所示:

import pandas as pd 
your_list= ['a', 'few', 'important', 'words']
df = pd.DataFrame(lst) 
print(df) 

输出:

   0
0  a
1  few
2  important
3  words

如果列表结构良好且具有 2 维或更多维,则可以直接指向所需的列:

import pandas as pd 
lst = [['dog', 'black', 1], ['cat', 'grey', 15], ['monkey', 'brown', 2]] 
df = pd.DataFrame(lst, columns =['Animal', 'Color', 'Quantity'], dtype = float) 
print(df) 

结果:

   Animal  Color  Quantity
0     dog  black       1.0
1     cat   grey      15.0
2  monkey  brown       2.0

在这种情况下,如果您有几个 1d 列表,则可以使用 zip() 函数:

import pandas as pd 
l_1 = ['first', 'second', 'third', 'fourth']
l_2 = [1, 2, 3, 4] 
df = pd.DataFrame(list(zip(l_1, l_2)), columns =['First Column', 'Second Column']) 
print(df) 

输出:

  First Column  Second Column
0        first              1
1       second              2
2        third              3
3       fourth              4

【讨论】:

    【解决方案2】:

    我假设您的列表实际上包含一个单一元素,即 Pandas 系列。你只需要:

    • 从列表中提取唯一元素
    • 重置系列索引

    代码很简单(假设您的列表是l):

    l[0].reset_index()
    

    它应该给出:

           time               id  ret_exc_lead1m
    0   2010-01  comp_001661_01W       -0.041371
    1   2010-01  comp_002410_04W       -0.053836
    2   2010-01  comp_004367_02W        0.024752
    3   2010-01  comp_004439_08W        0.013136
    4   2010-01  comp_011749_09W       -0.013695
    5   2010-01  comp_011925_01W        0.043677
    6   2010-02  comp_001661_01W       -0.041371
    7   2010-02  comp_012384_14W       -0.014593
    8   2010-02  comp_013498_01W        0.060748
    9   2010-02  comp_015321_02W       -0.053604
    10  2010-02  comp_015334_02W       -0.155894
    11  2010-03  comp_001661_01W       -0.041371
    12  2010-03  comp_015532_10W        0.003835
    13  2010-03  comp_015575_01W       -0.045820
    14  2010-03  comp_015576_01W        0.032070
    15  2010-03  comp_015598_03W        0.028164
    16  2010-03  comp_015617_02W       -0.053060
    17  2010-03  comp_015634_05W        0.102842
    18  2010-03  comp_018636_04W       -0.029271
    19  2010-04  comp_001661_01W       -0.041371
    20  2010-04  comp_019349_01W       -0.048753
    21  2010-04  comp_019565_13W       -0.007516
    22  2010-04  comp_025648_05W       -0.015128
    23  2010-04  comp_029097_01W        0.085202
    24  2010-04  comp_029804_04W       -0.011097
    25  2010-05  comp_001661_01W       -0.041371
    26  2010-05  comp_030807_03W       -0.139678
    27  2010-05  comp_031137_03W       -0.042764
    28  2010-05  comp_031142_05W        0.055970
    29  2010-05  comp_062806_93W       -0.104863
    30  2010-05  comp_063914_02W        0.044195
    31  2010-05  comp_063987_91W       -0.010617
    32  2010-06  comp_001661_01W       -0.041371
    33  2010-06  comp_064835_03W        0.020164
    34  2010-06  comp_064835_90W        0.047719
    35  2010-06  comp_065248_07W       -0.045530
    

    【讨论】:

      猜你喜欢
      • 2016-12-01
      • 2021-03-01
      • 2013-11-04
      • 1970-01-01
      • 2014-01-05
      • 2018-10-14
      • 2021-11-28
      • 1970-01-01
      相关资源
      最近更新 更多