【问题标题】:List of list of tuples to pandas dataframe到熊猫数据框的元组列表列表
【发布时间】:2018-11-01 04:47:03
【问题描述】:

我有这个数组(它是相似度计算的结果)它是一个像这样的元组列表:

example = [[(a,b), (c,d)], [(a1,b1), (c1,d2)] …]

在示例中有 121044 个列表,每个列表包含 30 个元组。

我想拥有一个类似于元组的第二个值(即:b、d、b1、d2)的 pandas 数据框,而无需花费太多时间来计算它

你有什么想法吗?

【问题讨论】:

  • 你希望列名是什么?

标签: python python-3.x pandas numpy dataframe


【解决方案1】:

使用嵌套列表推导:

df = pd.DataFrame([[y[1] for y in  x] for x in example])
print (df)
    0   1
0   b   d
1  b1  d2

df = pd.DataFrame([[y[1] for y in  x] for x in example], columns=['col1','col2'])
print (df)
  col1 col2
0    b    d
1   b1   d2

【讨论】:

    【解决方案2】:

    对于数值数据,可以直接使用numpy索引。这应该比列表解析更有效,因为pandas 在内部使用numpy 将数据存储在连续的内存块中。

    import pandas as pd, numpy as np
    
    example = [[(1,2), (3,4)], [(5,6), (7,8)]]
    
    df = pd.DataFrame(np.array(example)[..., 1],
                      columns=['col1', 'col2'])
    
    print(df)
    
       col1  col2
    0     2     4
    1     6     8
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-31
      • 2017-08-09
      • 2022-12-10
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      • 2020-07-22
      相关资源
      最近更新 更多