从具有不同条目长度的字典创建 DataFrame
当使用条目保存不同长度数组的字典时,构建一个DataFrame,其中每一列对应一个唯一的条目。尝试将此类字典直接转换为 DataFrame 会导致“ValueError:数组必须具有相同的长度。”
解决方案
要解决此问题,一个方法涉及将每个条目的数组转换为 Series,然后从结果字典构造一个 DataFrame。在 Python 3.x 中,这可以使用列表理解来实现:
d = dict( A = np.array([1,2]), B = np.array([1,2,3,4]) ) pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in d.items() ])) # Output: A B 0 1 1 1 2 2 2 NaN 3 3 NaN 4
在 Python 2.x 中,代码保持类似,但 d.items() 调用替换为 d.iteritems( ):
pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in d.iteritems() ]))
此技术有效地将每个字典条目转换为一个 Series,然后可以将其附加到 DataFrame 中,并以其相应的键作为列名。生成的 DataFrame 的列的长度与原始数组的长度匹配。缺失值表示为 NaN,以确保一致的列结构。
通过利用这种方法,可以从包含不同数组长度的条目的字典创建 DataFrame,从而实现进一步的数据分析和操作。
以上是如何从具有不同条目长度的字典创建数据帧?的详细内容。更多信息请关注PHP中文网其他相关文章!