如何在保持出现顺序不变的情况下获得熊猫系列的独特价值



我有一个这样的数据帧-

TEST_NUM  SITE_NUM  RESULT TEST_FLG              TEST_TXT UNITS LO_LIMIT HI_LIMIT
0       150         0 -0.4373        P  Continuity_PPMU XSCI     V       -1     -0.3
1       150         1 -0.4383        P  Continuity_PPMU XSCI     V       -1     -0.3
2       150         2 -0.4357        P  Continuity_PPMU XSCI     V       -1     -0.3
3       150         3 -0.4370        P  Continuity_PPMU XSCI     V       -1     -0.3
4       151         0 -0.4646        P  Continuity_PPMU XSCO     V       -1     -0.3

正如你所看到的,TEST_TXT有重复的值。TEST_TXT中大约有53个唯一的值。

Q>我想得到TEST_TXT序列中的所有唯一值,保持顺序不变,类似于['Continuity_PPMU XSCI','Continuity_PPMU XSCO',..etc]

目前,当我使用np.unique()时,它正在更改顺序,尽管它给出了唯一的值。

我可以迭代数据帧,保留一个映射来检查它是否已经出现了值,如果没有,我可以附加到列表中。通过这种方式,我可以以相同的顺序获得唯一的值,但我正在寻找一种更优雅的方式,更python的方式(或pandas/numpy(。

谢谢!

您可以将drop_duplicates直接用于您的系列:

df['TEST_TXT'].drop_duplicates()

会给你想要的,保持订单

只需从numpy.unique()切换到pandas.Series.unique()即可。NumPy使用排序获得唯一值,而Pandas使用哈希表,并在文档中明确表示结果是按照最初出现的顺序显示的。

就像这样:

df.TEST_TXT.unique()

相关内容

最新更新