df1:
Pan_no Target Debt_aum Hml
Xxx 0 5000 Low
YYY 1 0 medium
ZZZ 0 200 Low
Aaa 1 15000 High
Yyy 1 0 High
健康)狀況:
如果debt_aum =0 和target =1,那么這些行的hml 應該是Low。
Expected Output:
Pan_no Target Debt_aum Hml
Xxx 0 5000 Low
YYY 1 0 Low
ZZZ 0 200 Low
Aaa 1 15000 High
Yyy 1 0 Low
在 SQL 中,我將只撰寫一個更新陳述句。在python中我遇到了麻煩。我累了
for i in df1['hml']:
if df1[target] == 1 and df1[debt_aum] == 0:
i = 'Low'
else:
i
uj5u.com熱心網友回復:
IIUC,你可以試試numpy.where功能:
import pandas as pd
import numpy as np
df["Hml"] = np.where(((df["Debt_aum"] == 0) & (df["Target"])), "Low", df["Hml"])
df
輸出
| Pan_no | 目標 | 債務資產 | 嗯 |
|---|---|---|---|
| xxx | 0 | 5000 | 低的 |
| 年年 | 1 | 0 | 低的 |
| ZZZ | 0 | 200 | 低的 |
| 啊啊啊 | 1 | 15000 | 高的 |
| 年年 | 1 | 0 | 低的 |
uj5u.com熱心網友回復:
嘗試mask:
df["Hml"] = df["Hml"].mask(df["Debt_aum"].eq(0)&df["Target"].eq(1),"Low")
>>> df
Pan_no Target Debt_aum Hml
0 Xxx 0 5000 Low
1 YYY 1 0 Low
2 ZZZ 0 200 Low
3 Aaa 1 15000 High
4 Yyy 1 0 Low
uj5u.com熱心網友回復:
一個解決方案loc:
df1.loc[(df1['Debt_aum']==0)&(df1['Target'] == 1)] = 'Low'
df1
'''
Pan_no Target Debt_aum Hml
0 Xxx 0 5000 Low
1 Low Low Low Low
2 ZZZ 0 200 Low
3 Aaa 1 15000 High
4 Low Low Low Low
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/448657.html
標籤:Python python-3.x 数据框 麻木的
下一篇:熊貓擴展字母數字字符以進行迭代
