此类变量的数据输出如下:
{'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],
...,我试图将其转换为一个熊猫df,其中包含列标题的每个dict键和每个相应的dict值作为其数据序列。谢谢你的帮助。
发布于 2020-09-18 03:05:30
这就是你要找的吗?
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方法将所有数组都压平。一旦你这样做,它就会无缝地传递到一个数据文件中。
https://stackoverflow.com/questions/63948654
复制相似问题