Python pandas 将字典dict转化为DataFrame时需避免的坑

人工智能31

先上结论:

以下是详细阐述。

有这样一个字典

d = {'a':1, 'b':2, 'c':4}

如果直接使用 pd.DataFrame(data=d),会出现以下的报错:
ValueError: If using all scalar values, you must pass an index
所以对于值都是 scalar的字典转化为 DataFrame的时候,需要指明 index且注意 index 需要是一个数组。如下:

pd.DataFrame(data=d, index=['value'])
>>>
        a   b   c
value   1   2   4

笔者经常忘记加上 index,或者 index忘记需要是数组,影响了写代码的效率。所以笔者推荐使用 pd.Series()先将字典转化为 Series再使用 to_frameSeries转化为 DataFrame,最后转置。如下:

pd.Series(data=d).to_frame().T
>>>
    a   b   c
0   1   2   4

当然这个是看个人选择,下面的第二种情况则可能踩坑了。

比如我们有这样一个字典,

d = {'a':1, 'b':[2,1], 'c':4}

想转化如下的 DataFrame

    a     b     c
0   1   [2, 1]  4

如果直接使用 pd.DataFrame,会出现以下的结果:

pd.DataFrame(data=d)
>>>
    a   b   c
0   1   2   4
1   1   1   4

可以看到 DataFrame会按照长度最大的值进行填充。所以应该先用 pd.Series

pd.Series(data=d).to_frame().T
>>>
    a     b     c
0   1   [2, 1]  4

Done!

Original: https://blog.csdn.net/weixin_39925939/article/details/121854635
Author: 每天都想躺平的大喵
Title: Python pandas 将字典dict转化为DataFrame时需避免的坑

相关文章
动态图和静态图 人工智能

动态图和静态图

动态图和静态图介绍 目前市面上比较流行的深度学习框架主要分类两大类:动态图框架和静态图框架,Pytorch、TF、Caffeine等框架最大的区别就是它们拥有不同的计算图表现形式。TF使用静态图,意味...
[论文阅读]TPOT 人工智能

[论文阅读]TPOT

[论文阅读]TPOT原文 来源 Bioinformatics——CCF B 生物信息学顶刊 作者实验室:宾夕法尼亚大学生物信息学研究所[En]Author's laboratory: Institut...
二十一、文本情感分类二 人工智能

二十一、文本情感分类二

1.1 文本训练化概述 深度学习构建模型前需要将文本转化为向量表示(Word Embedding)。首先需要将文本转化为数字(文本序列化),在把数字转化为向量。 可以考虑把文本中的每个词语和其对应的数...
OpenVINO安装和使用 人工智能

OpenVINO安装和使用

Openvino对平台系统的要求,他不是所有平台和硬件条件下都适配的,具体要求 要求的处理器和对应的操作系统如下图: ; 1.环境安装与测试 参考: https://blog.csdn.net/ran...