【问题标题】:How to construct a pandas dataframe from an output consisting of a nested list of values within an array, within a dictionary如何从包含数组中嵌套值列表的输出构造熊猫数据框,在字典中
【发布时间】:2021-01-04 23:22:23
【问题描述】:

类变量的数据输出如下:

{'coupling.2.b': array([[0.00247262],
    [0.00248247],
    [0.00249233],
    ...,
    [0.01106487],
    [0.01106487],
    [0.01106487]]), 'coupling.2.ca': array([[9.98543405e-09],
    [9.97095234e-09],
    [9.95652127e-09],
    ...,
    [1.22356842e-08],
    [1.22356843e-08],
    [1.22356843e-08]]), 'coupling.2.gnmda': array([[0.002     ],
    [0.002     ],
    [0.002     ],
    ...,
    [0.00200253],
    [0.00200253],
    [0.00200253]]), 'coupling.2.nu': array([[1.30000000e-05],
    [1.30000000e-05],
    [1.30000000e-05],
    ...,
    [1.29998715e-05],
    [1.29998715e-05],
    [1.29998715e-05]]), 'coupling.2.nutilde': array([[1.30000000e-05],
    [1.30000000e-05],
    [1.30000000e-05],
    ...,
    [1.29971456e-05],
    [1.29971456e-05],
    [1.29971456e-05]]), 'pop.2.q': array([[11.07967784],
    [11.07967784],
    [11.07967785],
    ...,

我正在尝试将其转换为 pandas df,每个 dict 键包含列标题和每个相应的 dict 值作为其数据系列。感谢您的帮助。

【问题讨论】:

    标签: python arrays pandas dataframe dictionary


    【解决方案1】:

    这是你要找的吗?

    from numpy import array
    
    data = {
        "coupling.2.b": array([[0.00247262], [0.00248247], [0.00249233], [0.01106487], [0.01106487], [0.01106487]]),
        "coupling.2.ca": array([[9.98543405e-09], [9.97095234e-09], [9.95652127e-09], [1.22356842e-08], [1.22356843e-08], [1.22356843e-08]]),
        "coupling.2.gnmda": array([[0.002], [0.002], [0.002], [0.00200253], [0.00200253], [0.00200253]]),
        "coupling.2.nu": array([[1.30000000e-05], [1.30000000e-05], [1.30000000e-05], [1.29998715e-05], [1.29998715e-05], [1.29998715e-05]]),
        "coupling.2.nutilde": array([[1.30000000e-05], [1.30000000e-05], [1.30000000e-05], [1.29971456e-05], [1.29971456e-05], [1.29971456e-05]]),
    }
    
    data = {k: v.flatten() for k, v in data.items()}
    df = pd.DataFrame(data)
    
    print(df)
       coupling.2.b  coupling.2.ca  coupling.2.gnmda  coupling.2.nu  coupling.2.nutilde
    0      0.002473   9.985434e-09          0.002000       0.000013            0.000013
    1      0.002482   9.970952e-09          0.002000       0.000013            0.000013
    2      0.002492   9.956521e-09          0.002000       0.000013            0.000013
    3      0.011065   1.223568e-08          0.002003       0.000013            0.000013
    4      0.011065   1.223568e-08          0.002003       0.000013            0.000013
    5      0.011065   1.223568e-08          0.002003       0.000013            0.000013
    

    这里的技巧是通过numpy.ndarray.flatten 方法展平所有数组。完成此操作后,它将无缝传递到数据帧中。

    【讨论】:

      猜你喜欢
      • 2021-06-21
      • 2017-06-16
      • 2019-03-30
      • 1970-01-01
      • 2021-10-22
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      相关资源
      最近更新 更多