python - 列表字典到数据框

标签 python pandas

我有一个字典,每个键都有一个浮点值列表。这些列表的大小不同。

我想将这本字典转换为 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/

相关文章:

python - 根据列表从具有重复列的 DF 中选择行

python - 保留列顺序 - Python Pandas 和列连接

Python pygodaddy 连接超时

python - 合并连续列中相同变量的级别

python - 我的标题名称显示在错误的列上

python-3.x - 将 string.capwords 与 Pandas 列一起使用

python - 比较 pandas/numpy 中的 NaN 列

python - 将字符串添加到线程名称末尾

python - openpyxl error raise ValueError ('Min value is {0}' .format(self.min)) 在打开带格式的重文件时

python - 如何将输入值与mysql数据库进行比较,没有匹配数据时自动添加 '0'和 '1'