python - 在 Python 中将 pandas 数据帧转换为一维列表时出现额外空格的问题

标签 python python-3.x pandas

我正在将一个大型 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/

相关文章:

python - 将数据帧值与同一行中的特定列进行比较

python - 使用索引和列名称给定的键将数据帧展平为字典

python 比较两个大列表并处理一个

python - 如何将 iPython HTML 类发送到 .html 文件?

python-3.x - 元组的连接

python - Pandas json_normalize 失败,JSON 中有空值

python - 在Python中计算每行中特定列的接下来3行的最大值

python - 如何正确删除特定的 ManyToMany 关系?

python - 在 Python 中打开和搜索 dBase III (DBF) 数据库

python - 在 Pandas 数据框 python 中寻找值(value)