python - 将python字典的键值转换为pandas数据帧

标签 python pandas

我有一个 python 字典,其中包含单个或多个整数值作为字符串,如下所示:

d = {'a': ['1.20', '1', '1.10'], 'b': ['5.800', '1', '2.000'], 'c': ['9.5000', '0.9000'], 'h': ['1.90000', '6.100000'], 'l': ['1.0000', '8.00000'], 'o': '5.0000', 'p': ['3.00', '1.1000'],  'v': ['1.8', '0.0000']}

如何将其转换为 pandas DataFrame 而不借助 pandas 系列的帮助?

预期输出:

            col1  col2  col3
       a    1.2   1     1.1
       b    5.8   1     2
       c    9.5   0.9   NaN
       h    1.9   6.1   NaN
       l    1     8     NaN
       o    5     NaN   NaN
       p    3     1.1   NaN
       v    1.8   0     NaN

最佳答案

使用帮助器系列:

df = pd.concat({k:pd.Series(v) for k, v in d.items()}).unstack().astype(float).sort_index()
df.columns = 'col1  col2  col3'.split()

另一种解决方案是将非列表值转换为一个元素列表,然后 DataFrame.from_dict :

d = {k:v if isinstance(v, list) else [v] for k, v in d.items()}
df = pd.DataFrame.from_dict(d, orient='index').astype(float).sort_index()
df.columns = 'col1  col2  col3'.split()


print (df)
   col1  col2  col3
a   1.2   1.0   1.1
b   5.8   1.0   2.0
c   9.5   0.9   NaN
h   1.9   6.1   NaN
l   1.0   8.0   NaN
o   5.0   NaN   NaN
p   3.0   1.1   NaN
v   1.8   0.0   NaN

关于python - 将python字典的键值转换为pandas数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48827361/

相关文章:

python - 无效表达式/缺少组名称

c++ - 使用 Cython 将功能公开给另一个应用程序

python - 从特定索引中重新选择 Pandas 数据框

python - 如何避免 pandas 在保存的 csv 中创建索引

python - 机器学习中如何处理缺失数据?

python - 如何根据记录中其他 4 个字段的 bool 运算符有效更新数据框中的字段?

python - 使用正则表达式抓取 HTML 表单

python - PyPI 中的 tf-nightly 和 tensorflow 有什么区别?

python - 当 chunksize = 100 时,大(600 万行)pandas df 导致内存错误 `to_sql `,但可以轻松保存 100,000 个没有 chunksize 的文件

python - 创建 pandas 数据框时添加多个列名称