如何从熊猫创建自定义列表?

时间:2019-01-06 19:06:26

标签: python numpy

我有一个如下数据框:

Country Age     Dept    Card
India   Adult   Science A,B,C
India   Adult   Math    B,C,D
India   Adult   Social  E,D,C

构建上述DF的代码:

pd.DataFrame ({'Country' : ['INDIA','INDIA','INDIA'],
                         'Age' : ['Adult','Adult','Adult'],
                         'Dept' : ['Science','Math','Social'],
                         'Card' : ['A,B,C','B,C,D','E,D,C']})

我想从列“卡”的值中获取列表列表,如下所示:

[['A','B','C'], ['B','C','D'], ['E','D','C']]

我尝试了以下代码:

lis1=[]
for i in range(len(df)):
    lis=[]
    l=A.Card.iloc[i]
    lis.append(l)
    for i in range(0,len(df),len(df)):
        lis1.append(lis)

我得到的输出如下:

[['A,B,C'], ['B,C,D'], ['E,D,C']]

如果您可以注意到,在我的输出中,我没有得到单个元素的括号。谁能帮助我获得所需的输出?

2 个答案:

答案 0 :(得分:0)

这将起作用:

[list(a.split(',')) for a in df.Card.tolist()]

输出为:

[['A', 'B', 'C'], ['B', 'C', 'D'], ['E', 'D', 'C']]

答案 1 :(得分:0)

只需这样做

lis1=[]
for i in range(len(df)):
    l=df.Card.iloc[i].split(',')
    lis1.append(l)
lis1

输出:

[['A', 'B', 'C'], ['B', 'C', 'D'], ['E', 'D', 'C']]