Python 使用不同长度的给定列表使数据帧具有不同的列长度

Python 使用不同长度的给定列表使数据帧具有不同的列长度,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个不同长度的列表,我想形成一个数据框架,将这些列表作为数据框架的列。 假设我的清单是 L1=[“a”,“b”] L2=[“g”、“h”、“o”、“y”] L3=[“k”、“u”、“e”] 我想要一个数据帧,其中 L1 L2 L3 a g k b h u o e y 这个问题不仅仅限于三列。它的范围是数百个,它可能在寻找以下结果,其想法是将列表转换为数据帧,您还可以创建一个函数,将列表参数作为输入,而不是手动将每个列表键入数据帧 例1: 示例2(传递列

我有两个不同长度的列表,我想形成一个数据框架,将这些列表作为数据框架的列。 假设我的清单是
L1=[“a”,“b”]
L2=[“g”、“h”、“o”、“y”]
L3=[“k”、“u”、“e”]

我想要一个数据帧,其中

 L1 L2 L3
 a  g  k
 b  h  u
    o  e
    y   

这个问题不仅仅限于三列。它的范围是数百个,它可能在寻找以下结果,其想法是将列表转换为数据帧,您还可以创建一个函数,将列表参数作为输入,而不是手动将每个列表键入数据帧

例1: 示例2(传递列表参数的函数): 您可以从
itertools
使用迭代器。它将用
fillvalue
填充较短的序列,默认情况下,
None
。您可以在下面的示例中指定其他内容,如空字符串

from itertools import zip_longest
df = pd.DataFrame(zip_longest(L1,L2,L3, fillvalue=''), 
                  columns=['L1','L2','L3'])

欢迎来到StackOverflow!分享你的研究成果对每个人都有帮助。告诉我们您尝试了什么,以及为什么它不能满足您的需求。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另请参见:如果我有100个列表,我需要为所有列表做些什么,如果你有100个列表,你可以写以下符号:包装器(L1,L2,L3……Ln)。因此,您可以循环函数并将列表连接在一起,即,*arg参数允许您将任意数量的数据传递到函数中。因此,它将为您执行DF连接。
import pandas as pd 
import numpy as np

## your list
L1 =["a","b"] 
L2 = ["g","h","o","y"] 
L3 = ["k","u","e"]

## function passing arguments
def wrapper(*args):
    return pd.concat([pd.DataFrame(i) for i in args], ignore_index=True, axis=1).replace(np.nan, '')


## Results
print(wrapper(L1,L2,L3))
from itertools import zip_longest
df = pd.DataFrame(zip_longest(L1,L2,L3, fillvalue=''), 
                  columns=['L1','L2','L3'])