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'}]