我有兩個資料框(成員和遠征)。在探險中,有一列給出了探險的成員(也稱為成員)的數量,在成員中,我們將每個托運人鏈接到一個 expedition_id 以在兩個資料框之間建立鏈接。我已經為每個 expedition_id 計算了每次探險的成員總數,我想比較探險中給出的成員數量是否與我計算的成員數量相同。你能幫助我嗎?
import pandas as pd
members = pd.read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-09-22/members.csv")
expeditions = pd.read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-09-22/expeditions.csv")
遠征成員人數
nbre_membres_expedition = members[["expedition_id", "member_id"]].groupby("expedition_id", as_index = False).count()
nbre_membres_expedition
uj5u.com熱心網友回復:
要檢查merge值與 2 列不同的差異,請使用和過濾行:
nbre_memb_exp = members.value_counts('expedition_id').rename('nbre_memb_exp')
nbre_exp_memb = expeditions.set_index('expedition_id')['members'].rename('nbre_exp_memb')
diff_df = pd.merge(nbre_memb_exp, nbre_exp_memb,
left_index=True, right_index=True, how='outer') \
.query('nbre_memb_exp != nbre_exp_memb')
輸出:
>>> diff_df
nbre_memb_exp nbre_exp_memb
expedition_id
ACHN15302 11.0 9 # hired_staff=2
ACHN18301 9.0 8 # hired_staff=1
AMAD00106 3.0 1 # hired_staff=2
AMAD00110 10.0 8 # hired_staff=3 ???
AMAD00112 5.0 3 # hired_staff=2
... ... ...
YALU88301 10.0 8
YALU89301 10.0 8
YALU89401 7.0 5
YAUP13301 4.0 2
YAUP17101 9.0 6
[5431 rows x 2 columns]
我認為你必須與列相加hired_staff。nbre_exp_memb = ...通過以下方式更改上一行:
nbre_exp_memb = expeditions.set_index('expedition_id')[['members', 'hired_staff']] \
.sum(axis=1).rename('nbre_exp_memb')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369438.html
上一篇:如何更改同一列中顯示的結果?
