簡體   English   中英

數據框如何僅保留唯一的行和繪圖曲線

[英]Dataframe how to keep only unique rows and plot curve

我在下面的數據框中嘗試實際繪制曲線,但問題是在精度和查全率方面,每個值都有多個對應的值。

       precision  recall
1       0.000000       0
7       0.000000       0
23      0.000000       0
28      0.000000       0
34      0.000000       0
35      0.000000       0
40      0.000000       0
50      0.000000       0
60      0.000000       0
17859   0.133333  0.009050
13159   0.066667  0.012195
9232    0.133333  0.012500
6131    0.066667  0.013333
7900    0.066667  0.014085
11671   0.066667  0.014925
20317   0.066667  0.014925

考慮到以上數據集,我想保留唯一行,在我對唯一性的解釋中,保持唯一性將是:

       precision  recall
1       0.000000       0
17859   0.133333  0.009050
13159   0.066667  0.012195
9232    0.133333  0.012500
6131    0.066667  0.013333
7900    0.066667  0.014085
20317   0.066667  0.014925

如何轉換原始數據框以獲得以上唯一行?

我嘗試了分組方法:

grouped = df.groupby(cols_to_consider)
index = [gp_keys[0] for gp_keys in grouped.groups.values()]
unique_df = df.reindex(index)

但是沒有用。

您可以使用drop_duplicates()刪除重復的行。

In [49]: df.drop_duplicates()
Out[49]:
       precision    recall
1       0.000000  0.000000
17859   0.133333  0.009050
13159   0.066667  0.012195
9232    0.133333  0.012500
6131    0.066667  0.013333
7900    0.066667  0.014085
11671   0.066667  0.014925

另外,您的方法應該可以工作,我想必須將column_names弄亂了嗎?

In [57]: grouped = df.groupby(df.columns.tolist())

In [58]: index = [gp_keys[0] for gp_keys in grouped.groups.values()]

In [59]: unique_df = df.reindex(index)

In [60]: unique_df
Out[60]:
       precision    recall
1       0.000000  0.000000
11671   0.066667  0.014925
6131    0.066667  0.013333
7900    0.066667  0.014085
17859   0.133333  0.009050
9232    0.133333  0.012500
13159   0.066667  0.012195

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM