在Python中将pandas数据帧转换为1D列表时出现的额外空格问题
我正在将一个大熊猫数据帧表转换为1D python列表,并根据需要删除该列表中的重复元素。但是,在转换为列表后,某些元素的某些重复在开始之前有额外的空间,因此我的“删除重复项”行效率不高,它将这些元素视为两个不同的元素。另外,如何从不是数字(nan)的列表中删除元素? 样本输入:在Python中将pandas数据帧转换为1D列表时出现的额外空格问题,python,python-3.x,pandas,Python,Python 3.x,Pandas,我正在将一个大熊猫数据帧表转换为1D python列表,并根据需要删除该列表中的重复元素。但是,在转换为列表后,某些元素的某些重复在开始之前有额外的空间,因此我的“删除重复项”行效率不高,它将这些元素视为两个不同的元素。另外,如何从不是数字(nan)的列表中删除元素? 样本输入: E1 E2 E3 0 A B NaN 1 A C NaN 2 A B C ... 300
E1 E2 E3
0 A B NaN
1 A C NaN
2 A B C
...
300 X B C
这是我用来执行它的代码:(“green”是包含上表的数据帧
MCS2=green.values.tolist()
MCS2=list(set(sum(MCS2,[])))
print(MCS2)
预期产出:
['A','B','C',....,'X']
但由于某些原因,某些“A”前面有一个额外的空格,它们显示为“A”和“A”,因此即使它们是相同的,也被视为两个不同的元素。这是我的输出:
['A',' A','B','C',' C'....,'X']
然后可以使用空格、
和最后一次转换:
它仍然有同样的问题@jezrael。一些元素在新列表中出现不止一次,只是因为前面有额外的空间。
print pd.DataFrame({'E1': {0: 'A ', 1: ' A', 2: 'A', 300: 'X'},
'E3': {0: np.nan, 1: np.nan, 2: 'C', 300: 'C'},
'E2': {0: 'B', 1: 'C', 2: 'B', 300: 'B'}})
print df
E1 E2 E3
0 A B NaN
1 A C NaN
2 A B C
300 X B C
print df.stack().str.strip().drop_duplicates().tolist()
['A', 'B', 'C', 'X']