迭代 Pandas 数据框中的列表元素 - 每个条目都有不同的大小,并且需要为列表中的每个条目生成一个新列

nOO*_*bda 4 python dataframe pandas

我有一个数据框

在此处输入图片说明

在这里,我有一个名为“名称拆分”的列,它是一个包含列表的列。现在我想拆分列表的内容并为每个列表创建单独的列。

这是我迄今为止尝试过的:

df = pd.read_csv("C:/Users/Transorg-PC/Desktop/Training/py/datase/football.csv")

temp = df.copy()

temp['name'] = temp['name'].apply(lambda x: ' '.join(x.split()))

temp['name split'] = temp['name'].apply(lambda x: x.split())

temp['length'] = temp['name split'].str.len()

for i in range(temp['length'].max()-1):
    temp[i] = temp['name split'].apply(lambda x:x[i])
Run Code Online (Sandbox Code Playgroud)

但是我无法像这样迭代,因为在某些情况下索引超出范围。那么如何在单独的列中拆分列表的内容。

WeN*_*Ben 5

类似于来自 jpp 的数据

pd.concat([df,pd.DataFrame(df.name.tolist())],1)
Out[1596]: 
   A    name  0  1
0  1  [1, 2]  1  2
1  1  [3, 4]  3  4
2  2  [5, 6]  5  6
Run Code Online (Sandbox Code Playgroud)

更新

df=pd.DataFrame([[1,[1, 2]],
                   [1,[3, 4]],
                   [2,[5, 6,1,1]]],
                  columns=['A','name'])
pd.concat([df,pd.DataFrame(df.name.tolist())],1)
Out[1602]: 
   A          name  0  1    2    3
0  1        [1, 2]  1  2  NaN  NaN
1  1        [3, 4]  3  4  NaN  NaN
2  2  [5, 6, 1, 1]  5  6  1.0  1.0
Run Code Online (Sandbox Code Playgroud)