我正在将一个大型 pandas 数据框表转换为一维 python 列表,并根据需要删除该列表中的重复元素。然而,在转换为列表后,某些元素的某些重复在开始之前有一个额外的空间,因此我的“删除重复项”行效率不高,它认为它们是两个不同的元素。另外,如何从列表中删除不是数字(nan)的元素? 输入示例:
E1 E2 E3
0 A B NaN
1 A C NaN
2 A B C
...
300 X B C
这是我用来执行它的小代码:(“绿色”是包含上表的数据框
MCS2=green.values.tolist()
MCS2=list(set(sum(MCS2,[])))
print(MCS2)
预期输出:
['A','B','C',....,'X']
但由于某种原因,某些“A”前面有一个额外的空格,它们显示为“A”和“A”,因此即使它们相同,也被视为两个不同的元素。这是我的输出:
['A',' A','B','C',' C'....,'X']
最佳答案
您可以使用stack
,然后 str.strip
空格,
drop_duplicates
最后转换tolist
:
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']
关于python - 在 Python 中将 pandas 数据帧转换为一维列表时出现额外空格的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37140274/