Python 3.x 如何将包含列表的列转换为数据框中的单独列?

Python 3.x 如何将包含列表的列转换为数据框中的单独列?,python-3.x,pandas,list,dataframe,multiple-columns,Python 3.x,Pandas,List,Dataframe,Multiple Columns,我有一个数据框,其中一列包含一个列表 A B 0 5 [3, 4] 1 4 [1, 1] 2 1 [7, 7] 3 3 [0, 2] 4 5 [3, 3] 5 4 [2, 2] 输出应如下所示: A x y 0 5

我有一个数据框,其中一列包含一个列表

             A         B
0            5    [3, 4]
1            4    [1, 1]
2            1    [7, 7]
3            3    [0, 2]
4            5    [3, 3]
5            4    [2, 2]
输出应如下所示:

             A      x    y
0            5      3    4
1            4      1    1
2            1      7    7
3            3      0    2
4            5      3    3
5            4      2    2
我已经尝试了我发现的这些选项,但它不起作用

df = pd.DataFrame(data={"A":[0,1],
                       "B":[[3,4],[1,1]]})
df['x'] = df['B'].apply(lambda x:x[0])
df['y'] = df['B'].apply(lambda x:x[1])
df.drop(['B'],axis=1,inplace=True)
如果列表存储为字符串 第三方积分归
@anky_91

df[['A']].join(pd.DataFrame(df.B.values.tolist(),columns=['x','y'],index=df.index))
同样的解决方案对我有效。如果没有,请更详细地编辑这个问题,因为它给出了这个错误:“传递值的形状是(114316),索引暗示(214316)”很抱歉它不起作用。!什么是错误?不是列表项,而是在列“X”@astroluv中给出“[”。您的列表存储为字符串检查解决方案2@anky_91对于这种情况,您是正确的。此解决方案不好
    A   x   y
0   0   3   4
1   1   1   1
from ast import literal_eval
df = pd.DataFrame(data={"A":[0,1],
                       "B":['[3,4]','[1,1]']})
df['x'] = df['B'].apply(lambda x:literal_eval(x)[0])
df['y'] = df['B'].apply(lambda x:literal_eval(x)[1])
df.drop(['B'],axis=1,inplace=True)
df = pd.DataFrame(data={"A":[0,1],
                       "B":['[3,4]','[1,1]']})
df["B"] = df["B"].apply(lambda x :literal_eval(x))
df[['A']].join(pd.DataFrame(df["B"].values.tolist(),columns=['x','y'],index=df.index))
df.drop(["B"],axis=1,inplace=True)