我翻閱了論壇,但仍然無法弄清這個問題。
我正試圖從第二個資料框架中洗掉不存在于第一個資料框架中的行。條件是基于r_id列,該行的id需要存在于第一個資料框架中。
我試著這樣做:
df2 = pd.merge(df2, df1[[span class="hljs-string">'r_id']] , on=['r_id'], how='inner')
然而,仍然有一些行(r_ids)存在于df2中,而在df1中沒有。
df1是這樣的:
r_id tmps hr
4968 2 0 0
4968 2 0 0
4968 2 0 0
4968 2 0 0
4968 2 0 0
df2是這樣的:
r_id date
4968 02/08/2020
4968 02/08/2020
4968 02/08/2020
4968 31/10/2020
4968 31/10/20
4968 31/10/20
3245 20/12/20
3245 20/12/2020
但是,df2應該是這樣的:
r_id date
4968 02/08/2020
4968 02/08/2020
4968 02/08/2020
4968 31/10/2020
4968 31/10/20
4968 31/10/20
有什么想法嗎?
有什么想法嗎?
uj5u.com熱心網友回復:
你能用
試試嗎?df2 = df2[df2.r_id.isin(df1.r_id),] 。
uj5u.com熱心網友回復:
首先,確保你的鍵是正確的資料型別。
df1.r_id = df1.r_id.astype(str)
df2.r_id = df2.r_id.astype(str)
然后你用唯一的ID過濾你的資料框架。
df2 = df2[df2.r_id.isin(df1.r_id.unique().tolist()]
uj5u.com熱心網友回復:
data1 = {
'r_id': ['4968', '4968', '4968', '4968', '4968'] 。
'tmp': [2, 2, 2, 2]。
'meds'。[0, 0, 0, 0] 。
'hr': [0, 0, 0, 0] 。
}
data2 = {
'r_id': ['4968', '4968', '4968', '4968', '4968', '4968', '3245', '3245'] 。
'date': ['02/08/2020', '02/08/2020', '02/08/2020', '31/10/2020', '31/10/2020', '31/10/2020', '20/12/2020', '20/12/2020'] 。
}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
df2_copy = df2.copy()
df2 = [df2.r_id.isin(set(df1.r_id)) ]
# 檢查新的df2和原來的df2之間的差異。
print(df2_copy)
print(df2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/326407.html
標籤:
上一篇:合并兩個資料框架
下一篇:減去日期并回傳1或0
