Python 如何从dataframe中选择特定列项目作为列表?

Python 如何从dataframe中选择特定列项目作为列表?,python,pandas,numpy,dataframe,series,Python,Pandas,Numpy,Dataframe,Series,我有这样一个数据帧: A B C D --------------- 0 A 0 C D 1 A 0 C D 2 0 B C 0 3 A 0 0 D 4 0 B C 0 5 A 0 0 0 如何将其转换为这种形式不考虑出现的所有零: A B C D E ---------------------- 0 A 0 C D [A,C,D] 1 A 0 C D [A,C,D] 2 0 A C 0

我有这样一个数据帧:

  A  B  C   D 
---------------
0  A  0  C  D
1  A  0  C  D
2  0  B  C  0
3  A  0  0  D
4  0  B  C  0
5  A  0  0  0
如何将其转换为这种形式不考虑出现的所有零:

   A  B  C  D    E
----------------------
0  A  0  C  D  [A,C,D]
1  A  0  C  D  [A,C,D]
2  0  A  C  0  [A,C]
3  A  0  0  D  [A,D]
4  0  A  C  0  [A,C]
5  A  0  0  0  [A]
最后是一组项目,如:

[{A,C,D},{A,C,D},{A,C},{A,D},{A,C},{A}]

将嵌套列表理解与筛选0一起使用:

及:


到目前为止你试过什么?
#if 0 is number change '0' to 0
df['E'] = [[y for y in x if y != '0'] for x in df.values.tolist()]
print (df)
   A  B  C  D          E
0  A  0  C  D  [A, C, D]
1  A  0  C  D  [A, C, D]
2  0  B  C  0     [B, C]
3  A  0  0  D     [A, D]
4  0  B  C  0     [B, C]
5  A  0  0  0        [A]
s = [set([y for y in x if y != '0']) for x in df.values.tolist()]
print (s)
[{'A', 'D', 'C'}, {'A', 'D', 'C'}, {'C', 'B'}, {'A', 'D'}, {'C', 'B'}, {'A'}]