我有一个这样的数据帧-
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()