解析非结构化数据框python

时间:2020-07-06 17:13:20

标签: python pandas dataframe

我在python中有一个非结构化的数据框,其中有两个变量X和Y。X中的每个观察值都是数组,Y是类变量,看起来像

             X           Y
      1. [ [ 1,2] ]      a
      2. [ [ 2,3] ]      b

我想拥有它

 1.   1    2     a
 2.   2    3     b 

I have tried option from numpy to data frame but not working 

1 个答案:

答案 0 :(得分:2)

import pandas as pd
df=pd.DataFrame({'X':[[[1,2]],[[3,4]]],'Y':['a','b']})

def expand(x):
     x=x['X'][0]
     return x
df['X1'],df['X2']=zip(*df.apply(expand,axis=1))
df=df.drop(['X'],axis=1)

说明:将zip()与apply(axis = 1)结合使用,我们可以使用'X'生成2个新列。

对于“ X”中的许多元素:

import pandas as pd
df=pd.DataFrame({'X':[[[1,2,3,4]],[[3,4,5,6]]],'Y':['a','b']})

def expand(x):
    new_columns=x['X'][0]
    return new_columns+[x['Y']]
df=pd.DataFrame(zip(*df.apply(expand,axis=1))).T

enter image description here

现在,“ X”可以具有任意数量的元素。例如,我使用带有四个元素的“ X”。