在 Python 中,可以从每个条目保存一个 Numpy 数组的字典创建 DataFrame。然而,当条目之间的数组长度不同时,就会出现挑战。默认情况下,Pandas 需要统一长度的数组,从而导致类似“ValueError: arrays must all be the same length.”的错误。
克服长度差异
要解决对于这个问题,我们可以利用 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。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3