考慮到我在 Pandas 資料框中有以下資料:
| 紙質身份證 | 作者編號 |
|---|---|
| 紙_1 | 作者_1 |
| 紙_1 | 作者_2 |
| 紙_2 | 作者_2 |
| 紙_3 | 作者_1 |
| 紙_3 | 作者_2 |
| 紙_3 | 作者_3 |
| 紙_4 | 作者_1 |
| 紙_4 | 作者_3 |
我需要找到非零合作的數量。所以,輸出應該是:
(Author_1,Author_2) --> 2
(Author_1,Author_3) --> 1
任何幫助或建議將不勝感激。
uj5u.com熱心網友回復:
如果資料相當小,則合并Paper ID將生成可以折疊/聚合的對:
# assume df has columns Paper ID, Author ID
df_merged = df.merge(df, on="Paper ID")
# keep only one instance of a collaboration
mask = df_merged["Author ID_x"] > df_merged["Author ID_y"]
# aggregate (note the use of the mask to avoid double-
# counting and self-collaborations as noted in the
# comment by Riccardo Bucco)
counts = (
df_merged[mask]
.groupby(["Author ID_x", "Author ID_y"])
.agg(collaboration_count=("Paper ID", "count"))
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/402278.html
