【问题标题】:Converting a list of list of tuples to a DataFrame (First argument: column, Second argument: value)将元组列表转换为 DataFrame(第一个参数:列,第二个参数:值)
【发布时间】:2021-05-01 07:45:07
【问题描述】:

所以我需要一个来自 list_of_list_of_tuples 的 DataFrame:

我的数据如下所示:

元组 = [[(5,0.45),(6,0.56)],[(1,0.23),(2,0.54),(6,0.63)],[(3,0.86),(6, 0.36)]]

我需要的是这个:

index 1 2 3 4 5 6
1 nan nan nan nan 0.45 0.56
2 0.23 0.54 nan nan nan 0.63
3 nan nan 0.86 nan nan 0.36

所以元组中的第一个参数是列,第二个是值。 索引也会很好。 谁能帮我? 我不知道如何制定代码。

【问题讨论】:

    标签: pandas list dataframe tuples converters


    【解决方案1】:

    将每个元组转换为字典,传递给DataFrame 构造函数,最后添加DataFrame.reindex 以获取更改顺序并添加缺失的列:

    df = pd.DataFrame([dict(x) for x in tuples])
    
    df = df.reindex(range(df.columns.min(), df.columns.max() + 1), axis=1)
    print (df)
          1     2     3   4     5     6
    0   NaN   NaN   NaN NaN  0.45  0.56
    1  0.23  0.54   NaN NaN   NaN  0.63
    2   NaN   NaN  0.86 NaN   NaN  0.36
    

    【讨论】:

      【解决方案2】:
      tuples = [[(5,0.45),(6,0.56)],[(1,0.23),(2,0.54),(6,0.63)],[(3,0.86),(6,0.36)]]
      
      for x in tuples:
          print(x)
          index=[]
          values=[]
          for tuple in x:
              print(tuple[0],tuple[1])
              index.append(tuple[0])
              values.append(tuple[1])
          print(index,values)
      

      【讨论】:

      • 数据框的列是已知的还是必须派生的?我将需要传递数据以获取列名,然后第二次传递以使用数据框 loc 创建行
      猜你喜欢
      • 1970-01-01
      • 2021-12-19
      • 1970-01-01
      • 2020-03-08
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      • 2021-05-02
      • 2019-06-16
      相关资源
      最近更新 更多