python - 解析 Pandas 中的大字符串值

标签 python pandas csv dataframe

我有一个 .csv,我从中生成了一个数据帧。此 csv 具有来自遵循以下格式的系统的原始数据输出:

{"DataType1":"Value","DataType2":"Value","DataType3":"Value",.....}

数据框中的每一行都在 1 列中包含此内容。我试图解决这个问题,以便数据类型成为列标题,值填充行。另一方面是并非所有行都具有相同的数据类型,有些行具有其他行中可能不存在的附加数据类型。例如,第 1 行可能具有 DataType1DataType2DataType3,第 2 行可能具有 DataType2 DataType4DataType5。理想情况下,我希望输出的列标题包含所有数据类型,无论该行是否有值。所以最终的数据帧将是这样的结构:

-------------------------------------------------------------
| DataType1 | DataType2 | DataType3 | DataType4 | DataType5 |
-------------------------------------------------------------
| Value     | Value     | Value     |   NaN     |   NaN     |
-------------------------------------------------------------
|  NaN      |  Value    | NaN       | Value     |  Value    |
-------------------------------------------------------------

最佳答案

从字典转换时数据帧遵循以下格式:

dict = {'column 1':[1,2], 'column 2':[3,4], ...}

请注意,每个键中值的长度相同或

pd.DataFrame(dict)

会抛出错误。

为了克服错误,您可以迭代该字典并通过解析它来生成 DataFrame。

pd.DataFrame(dict([(k,pd.Series(v)) for k,v in dict.items() ]))

*假设“dict”是您的词典名称。

这样您就可以获得所需的输出。

关于python - 解析 Pandas 中的大字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53332235/

相关文章:

python - 如何卸载 virtualenvwrapper?

python - Python 中的高级逻辑运算符

python - 在 pandas 数据帧上逐行迭代,并有可能跳回

python - 如何将数据框唯一值与列表进行比较?

ruby-on-rails - 将 CSV 文件解析为 Rails 数据库

python - 如何循环读取巨型CSV文件

emacs - 使用 Emacs 计算逗号分隔值

python - 类型错误 : Inconsistency in the inner graph of scan 'scan_fn' . ... 'TensorType(float64, col)' 和 'TensorType(float64, matrix)'

python - 理论上,对于 Apache Spark,Scala 比 Python 更快。实际上并非如此。这是怎么回事?

python - 在python中使用plotineine将pdf与直方图一起绘制