我正在重新發布,因為我的上一個問題措辭不佳。我有一個如下所示的表:
------ ------ ------ ------ ------------ ----------
| ID 1 | ID 2 | Type | Year | Identified | Multiple |
------ ------ ------ ------ ------------ ----------
| 100 | 10 | A | 2018 | 12 | |
| 100 | 11 | B | 2019 | | multiple |
| 100 | 12 | C | 2019 | | multiple |
| 100 | 13 | D | 2019 | | |
| 200 | 10 | A | 2018 | | |
| 200 | 11 | B | 2019 | | multiple |
| 200 | 12 | C | 2019 | | multiple |
| 200 | 13 | D | 2019 | | |
------ ------ ------ ------ ------------ ----------
我正在嘗試洗掉ID組沒有Identified值的“多個”列中的“多個”字串。例如,第一組ID 1 == 100包含一個非空Identified值,因此我們可以保留“多個”值。但是,該ID 1 == 200組沒有Identified值,因此我想洗掉該組中出現的“多個”值,為我們提供以下資料框。
------ ------ ------ ------ ------------ ----------
| ID 1 | ID 2 | Type | Year | Identified | Multiple |
------ ------ ------ ------ ------------ ----------
| 100 | 10 | A | 2018 | 12 | |
| 100 | 11 | B | 2019 | | multiple |
| 100 | 12 | C | 2019 | | multiple |
| 100 | 13 | D | 2019 | | |
| 200 | 10 | A | 2018 | | |
| 200 | 11 | B | 2019 | | |
| 200 | 12 | C | 2019 | | |
| 200 | 13 | D | 2019 | | |
------ ------ ------ ------ ------------ ----------
如果我可以改寫我的問題,請告訴我。
編輯:如果Identified和Multiple列都是空白的,則留空。
uj5u.com熱心網友回復:
假設您的資料框可以使用與此相同的型別構建(請注意下次如何提供示例資料框,因為無法直接復制您的資料框)
df= pd.DataFrame({
'ID 1': [100]*4 [200]*4,
'other_cols':range(8),
'Identified':['12'] ['']*7,
'Multiple':['','multiple','multiple','']*2
})
print(df)
# ID 1 other_cols Identified Multiple
# 0 100 0 12
# 1 100 1 multiple
# 2 100 2 multiple
# 3 100 3
# 4 200 4
# 5 200 5 multiple
# 6 200 6 multiple
# 7 200 7
因此,要完成這項作業,請檢查如果不等于 ( ne) 來標識的位置為空白。groupby.transform如果一個不為空,則為any所有相同的 ID 獲取 True。使用此掩碼的反向 ( ~) 選擇只有空白的 ID,并在另一列中分配空白。
# greate a mask with True where at least one non blank value per ID
mask = df['Identified'].ne('').groupby(df['ID 1']).transform(any)
# reverse the mask and assign blank
df.loc[~mask, 'Multiple'] = ''
print(df)
# ID 1 other_cols Identified Multiple
# 0 100 0 12
# 1 100 1 multiple
# 2 100 2 multiple
# 3 100 3
# 4 200 4
# 5 200 5
# 6 200 6
# 7 200 7
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/453882.html
標籤:Python 熊猫 数据框 熊猫-groupby
下一篇:具有串列長度的熊貓groupby
