我有一个字典,每个键都有一个浮点值列表。这些列表的大小不同。
我想将这本字典转换为 pandas 数据框,以便我可以轻松地对数据执行一些分析功能,例如(最小值、最大值、平均值、标准差等)。
我的字典是这样的:
{
'key1': [10, 100.1, 0.98, 1.2],
'key2': [72.5],
'key3': [1, 5.2, 71.2, 9, 10.11, 12.21, 65, 7]
}
将其放入数据框以便我可以利用 basic functions 的最佳方法是什么?比如sum
, mean
, describe
, std
?
我找到的示例(如上面的链接)都假设每个键在列表中具有相同数量的值。
最佳答案
d={
'key1': [10, 100.1, 0.98, 1.2],
'key2': [72.5],
'key3': [1, 5.2, 71.2, 9, 10.11, 12.21, 65, 7]
}
df=pd.DataFrame.from_dict(d,orient='index').transpose()
那么df
就是
key3 key2 key1
0 1.00 72.5 10.00
1 5.20 NaN 100.10
2 71.20 NaN 0.98
3 9.00 NaN 1.20
4 10.11 NaN NaN
请注意,numpy 有一些内置函数可以忽略 NaN
值进行计算,这可能与此处相关。例如,如果你想找到 'key1'
列的均值,你可以这样做:
import numpy as np
np.nanmean(df[['key1']])
28.07
其他有用的函数包括 numpy.nanstd、numpy.nanvar、numpy.nanmedian、numpy.nansum
。
编辑:请注意您的 basic functions 中的函数link 也可以处理 nan
值。但是,它们的估计量可能与 numpy 的不同。例如,他们计算 unbiased estimator of sample variance ,而 numpy 版本计算 "usual" estimator of sample variance .
关于python - 列表字典到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42869544/