我想将list数据帧转换为pandas数据帧,其中list的第一个元素是dictionary.

我有以下代码

import pandas as pd
import numpy as np
pd.DataFrame([{'aa' : 10}, np.nan])

但是,此操作失败,并显示以下消息

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.11/site-packages/pandas/core/frame.py", line 782, in __init__
    arrays, columns, index = nested_data_to_arrays(
                             ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pandas/core/internals/construction.py", line 498, in nested_data_to_arrays
    arrays, columns = to_arrays(data, columns, dtype=dtype)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pandas/core/internals/construction.py", line 832, in to_arrays
    arr, columns = _list_of_dict_to_arrays(data, columns)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pandas/core/internals/construction.py", line 912, in _list_of_dict_to_arrays
    pre_cols = lib.fast_unique_multiple_list_gen(gen, sort=sort)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "pandas/_libs/lib.pyx", line 374, in pandas._libs.lib.fast_unique_multiple_list_gen
  File "/usr/local/lib/python3.11/site-packages/pandas/core/internals/construction.py", line 910, in <genexpr>
    gen = (list(x.keys()) for x in data)
                ^^^^^^
AttributeError: 'float' object has no attribute 'keys'

你能帮我解决这个问题吗?

推荐答案

将你的 list 附在np.array份中:

pd.DataFrame(np.array([{'aa' : 10}, np.nan]))

            0
0  {'aa': 10}
1         NaN

虽然你列出的时间很小,但以下是针对这种情况的时间比较:

In [777]: %timeit pd.DataFrame(np.array([{'aa' : 10}, np.nan]))
26.6 µs ± 220 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)

In [778]: %timeit pd.Series([{'aa' : 10}, np.nan]).to_frame()
49.6 µs ± 911 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)

Python-3.x相关问答推荐

如何在python中有效地使用多处理和pytube库来加快下载速度?

无法使用诗词安装PyYaml

如何通过Pandas为不同的列集垂直设置列数据?

使用Python抓取sofascore以获取有关球队阵容和投票的信息

使用 Fetch 提交表单到 Django 视图

公开数据中的卫星图像网页抓取优化

使用gekko python的混合整数非线性规划

用于 BIG 数组计算的多处理池映射比预期的要慢

将字典列表展平为数据框列

如何在python中将列表转换为其他格式

如何通过python打开文件

为什么包含类的名称不被识别为返回值函数注释?

sys.stdin.readline() 和 input():读取输入行时哪个更快,为什么?

if 语句中冒号的语法错误

为什么在 Python 中不推荐使用 MutableString?

无 Python 错误/错误?

如何为 Python 3.x 安装 psycopg2?

Python 3中星型导入的函数形式是什么

如何创建一个永远在其上运行滚动协程的事件循环?

Pylint 中的模块PyQt5.QtWidgets错误中没有名称QApplication