python - 从不等长的嵌套列表创建 Pandas 数据框

标签 python list pandas nested

所以我有一个列表如下:

aa = ['aa1', 'aa2', 'aa3', 'aa4', 'aa5']
bb = ['bb1', 'bb2', 'bb3', 'bb4']
cc = ['cc1', 'cc2', 'cc3']

然后将其创建为嵌套列表:

nest = [aa, bb, cc]

我想创建一个数据框,如下所示:

aa   bb   cc
aa1  bb1  cc1
aa2  bb2  cc2
aa3  bb3  cc3
aa4  bb4  nan
aa5  nan  nan

我试过:

pd.DataFrame(nest, columns=['aa', 'bb', cc'])

但结果是,每个列表都被写成一行(而不是一列)

最佳答案

itertools 中的 zip_longest 函数执行此操作:

>>> import itertools, pandas
>>> pandas.DataFrame((_ for _ in itertools.zip_longest(*nest)), columns=['aa', 'bb', 'cc'])
    aa    bb    cc
0  aa1   bb1   cc1
1  aa2   bb2   cc2
2  aa3   bb3   cc3
3  aa4   bb4  None
4  aa5  None  None

如果您有旧版本的 pandas,您可能需要将 zip_longest 包装在列表构造函数中。在较旧的 Python 上,您可能需要调用 izip_longest 而不是 zip_longest

关于python - 从不等长的嵌套列表创建 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46431660/

相关文章:

python - 如何使用 genfromtxt() 从 NumPy 中的文本文件中读取不同长度的列?

python - 由于非浮点 NaN 值,替换 DataFrame 中的 NaN 不起作用

c# - 如何在声明它的同一行中初始化 C# 列表。 (IEnumerable 字符串集合示例)

python - pandas 创建一个包含 n 个元素的系列(顺序或 randbetween)

python - 如何用我的 DataFrame 中的空字符串替换所有 "nan"字符串?

Python:通过非整数比例因子重新调整 pandas 中的时间序列

python - 我知道f弦,但是什么是r弦?还有其他吗?

python - 原始查询必须包含主键错误,即使我正在执行 SELECT *

python - 元组 : TypeError yet success 中的变异列表

java - 从对象列表中获取最小值和最大值