首页  >  文章  >  后端开发  >  如何从具有不同数组长度的字典创建 Pandas DataFrame?

如何从具有不同数组长度的字典创建 Pandas DataFrame?

Barbara Streisand
Barbara Streisand原创
2024-11-10 14:20:031031浏览

How to Create a Pandas DataFrame from a Dictionary with Varying Array Lengths?

从条目长度不均匀的字典创建 DataFrame

在 Python 中,可以从每个条目保存一个 Numpy 数组的字典创建 DataFrame。然而,当条目之间的数组长度不同时,就会出现挑战。默认情况下,Pandas 需要统一长度的数组,从而导致类似“ValueError:数组必须具有相同长度”的错误。

克服长度差异

解决对于这个问题,我们可以利用 Pandas 的功能,使用 NaN(非数字)值作为缺失数据的占位符。通过利用这一点,我们可以有效地创建一个包含不同长度列的 DataFrame。

为了实现这一点,我们可以将每个字典条目转换为 Pandas Series,这是一个可以无缝处理缺失值的一维数组。通过将字典项包装在生成器表达式中并使用 Series 构造函数,我们可以创建 Series 对象的字典。

import pandas as pd
import numpy as np

# Sample data with uneven array lengths
data = {
    'A': np.random.randn(5),
    'B': np.random.randn(8),
    'C': np.random.randn(4)
}

# Convert dictionary items to Series
series_dict = dict((k, pd.Series(v)) for k, v in data.items())

# Create DataFrame from the dictionary of Series
df = pd.DataFrame(series_dict)

结果:

In [1]: df
Out[1]:
        A         B         C
0  1.162543  1.681243  0.191287
1  0.459621  -0.141198 -0.109864
2  -0.866704 -0.128677  -0.511496
3  1.222436  -0.371449 -0.705894
4  -0.980584  1.255133       NaN
5        NaN -0.351051       NaN
6        NaN  0.443017       NaN
7        NaN -1.053693       NaN

显然,DataFrame 包含数组长度不同的缺失值 (NaN),这使我们能够从具有不同数组的字典创建具有不同列长度的 DataFrame长度。

以上是如何从具有不同数组长度的字典创建 Pandas DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn