我有以下数据框
import pandas as pd
import numpy as np
d = {
'ID':[1,2,3,4,5,6],
'Price1':[5,9,4,3,9,np.nan],
'Price2':[9,10,13,14,18,np.nan],
'Price5':[5,9,4,3,9,np.nan],
'Price6':[np.nan,10,13,14,18,np.nan],
'Price10':[9,10,13,14,18,np.nan],
'Price3':[5,9,4,3,9,np.nan],
'Price4':[9,10,13,14,18,np.nan],
'Price7':[np.nan,9,4,3,9,np.nan],
'Price8':[np.nan,10,13,14,18,np.nan],
'Price9':[5,9,4,3,9,np.nan],
'Type':['A','A','B','C','D','D'],
}
df = pd.DataFrame(data = d)
df
如何使用 pandas 查找列的最大值并根据条件按顺序排列它们?
查找价格 1、价格 2、价格 5、价格 6、价格 10 中的最大值,并将新列添加为 maxA
查找 Price 3、Price 4、Price 7、Price8、Price9 中的最大值,并将新列添加为 maxB
预期输出:
import pandas as pd
import numpy as np
d = {
'ID':[1,2,3,4,5,6],
'Price1':[5,9,4,3,9,np.nan],
'Price2':[9,10,13,14,18,np.nan],
'Price3':[5,9,4,3,9,np.nan],
'Price4':[9,10,13,14,18,np.nan],
'Price5':[5,9,4,3,9,np.nan],
'Price6':[np.nan,10,13,14,18,np.nan],
'Price7':[np.nan,9,4,3,9,np.nan],
'Price8':[np.nan,10,13,14,18,np.nan],
'Price9':[5,9,4,3,9,np.nan],
'Price10':[9,10,13,14,18,np.nan],
'Type':['A','A','B','C','D','D'],
'maxA1':[9,10,13,14,18,np.nan],
'maxA2':[9,10,13,14,18,np.nan],
'maxA3':[5,10,13,14,18,np.nan],
'maxA4':[5,9,4,3,9,np.nan],
'maxA5':[np.nan,9,4,3,9,np.nan],
'maxB1':[9,10,13,14,18,np.nan],
'maxB2':[5,10,13,14,18,np.nan],
'maxB3':[5,9,4,3,9,np.nan],
'maxB4':[np.nan,9,4,3,9,np.nan],
'maxB5':[np.nan,9,4,3,9,np.nan],
}
df = pd.DataFrame(data = d)
pd.set_option('max_columns',25)
df