我正在嘗試在資料框中創建一個新列,該列是兩列中的最大值或常數值。取最大值者將回傳到新列。
import numpy as np
import pandas as pd
df = pd.DataFrame({
'loan_num': ['111', '333', '555', '777'],
'bllnterm': [0, 240, 360, 240],
'amortterm': [0, 360, 360, 360]
})
我試過使用pd.clip, np.maximum,np.amax但似乎沒有人在不拋出錯誤的情況下運行。
df = df.assign(amtz = df[['bllnterm', 'amortterm']].clip(lower=1, axis=1))
這回傳一個ValueError: Wrong number of items passed 2, placement implies 1
df = df.assign(amtz = np.maximum(df[['bllnterm', 'amortterm']], 1))
這回傳一個ValueError: Wrong number of items passed 2, placement implies 1
df = df.assign(amtz = np.amax(df[['bllnterm', 'amortterm']], axis=1, initial=1))
這將回傳一個TypeError: max() got an unexpected keyword argument 'initial'. 但是,initial 是檔案中的關鍵字,所以我不確定那里發生了什么。
我想要的輸出如下所示:
loan_num bllnterm amortterm amtz
----------------------------------------------
111 0 0 1
333 240 360 360
555 360 360 360
777 240 360 360
uj5u.com熱心網友回復:
你走在正確的軌道上,你需要結合max和clip:
df['amtz'] = df[['bllnterm', 'amortterm']].max(axis=1).clip(lower=1)
作為assign:
df.assign(amtz=df[['bllnterm', 'amortterm']].max(axis=1).clip(lower=1))
輸出:
loan_num bllnterm amortterm amtz
0 111 0 0 1
1 333 240 360 360
2 555 360 360 360
3 777 240 360 360
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/537822.html
標籤:Python熊猫麻木的
上一篇:在簡單示例中連接失敗
