在 Pandas 中处理具有不等长度数组的字典需要量身定制的方法。当尝试创建一个 DataFrame,其中每一列代表字典中的一个数组时,可能会遇到 ValueError:“数组必须具有相同的长度。”
来规避此问题问题,我们利用 Pandas 的 Series 对象来保存不同长度的数组。通过将每个字典值转换为 Series,我们可以有效地存储数组,而不管它们的长度如何。以下代码片段演示了这种方法:
import pandas as pd import numpy as np # Sample data generated via a reproducible seed np.random.seed(2023) data = {k: np.random.randn(v) for k, v in zip("ABCDEF", [10, 12, 15, 17, 20, 23])} # Convert dictionary values to Series objects series_dict = {k: pd.Series(v) for k, v in data.items()} # Create DataFrame using these Series objects df = pd.DataFrame(series_dict)
处理不同长度的数组时,通常会遇到缺失值,其中较短的数组无法填充剩余的单元格。默认情况下,Pandas 使用 NaN(非数字)值填充这些空白。此行为保留原始数据,同时提供一致的分析结构。
如果需要,您可以使用 DataFrame 中的 Missing_values 参数自定义缺失值的处理( ) 构造函数。例如,要用零代替 NaN 替换缺失值,您可以指定missing_values=0,如下所示:
df = pd.DataFrame(series_dict, missing_values=0)
以下输出说明了使用概述的方法创建的 DataFrame上面:
print(df)
A B C D E F 0 0.711674 -1.076522 -1.502178 -1.519748 0.340619 0.051132 1 -0.324485 -0.325682 -1.379593 2.097329 -1.253501 -0.238061 2 -1.001871 -1.035498 -0.204455 0.892562 0.370788 -0.208009 3 0.236251 -0.426320 0.642125 1.596488 0.455254 0.401304 4 -0.102160 -1.029361 -0.181176 -0.638762 -2.283720 0.183169 ... ... ... ... ... ... ... 18 NaN NaN NaN NaN NaN NaN 19 NaN NaN NaN NaN NaN NaN 20 NaN NaN NaN NaN NaN NaN 21 NaN NaN NaN NaN NaN NaN 22 NaN NaN NaN NaN NaN NaN 23 rows × 6 columns
正如您所观察到的,较短的数组会在相应的单元格中产生 NaN 值,从而提供数据的全面表示,同时保持所需的表格格式。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3