![](/img/trans.png)
[英]Assigning values to multiple columns based on a single condition using Pandas (Python)
[英]Map values using multiple columns with a specific condition in Python
我有一個數據集,我想根據特定條件映射值。 我想添加一個新列,然后將一個標簽映射到一個 ID,如果它滿足以下條件:
**If ID == AA AND Date >= to Q121: Status = 'closed' AND values within the Used column will be null.**
數據
ID Date Location Used
AA Q121 NY 20
AA Q221 NY 50
AA Q321 NY 10
BB Q121 CA 1
BB Q221 CA 0
BB Q321 CA 500
BB Q421 CA 700
CC Q121 AZ 50
期望的
ID Date Location Used Status
AA Q121 NY closed
AA Q221 NY closed
AA Q321 NY closed
BB Q121 CA 1
BB Q221 CA 0
BB Q321 CA 500
BB Q421 CA 700
CC Q121 AZ 50
正在做
df['Status']=df['ID'].map({'AA':'closed' , })
是否可以使用兩列進行映射,或者循環更適合這個? 任何建議表示贊賞。
您可以為此使用np.where
:
df['Used'] = np.where(((df.ID == 'AA') & (df.Date >= 'Q121')), '', df['Used'])
df['Status'] = np.where(((df.ID == 'AA') & (df.Date >= 'Q121')), 'closed', '')
# or use np.nan instead of '' above, that's actually preferable (generating NaN values)
print(df)
ID Date Location Used Status
0 AA Q121 NY closed
1 AA Q221 NY closed
2 AA Q321 NY closed
3 BB Q121 CA 1.0
4 BB Q221 CA 0.0
5 BB Q321 CA 500.0
6 BB Q421 CA 700.0
7 CC Q121 AZ 50.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.