亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

計算 1. 最小值、2. 最小值左側的列的最大值以及 3. 最小值右側的列的最大值

計算 1. 最小值、2. 最小值左側的列的最大值以及 3. 最小值右側的列的最大值

拉丁的傳說 2023-08-22 10:42:59
查看完整描述

1 回答

?
DIEA

TA貢獻1820條經驗 獲得超2個贊

您可以僅在第一列之后進行選擇.iloc[:1,:],并使用一堆 pandas 方法,例如.min、.max、等:idxminidxmax


df['nadir'] = df.iloc[:,1:].min(axis=1)

df['nadir_qtr'] = df.iloc[:,1:].idxmin(axis=1).apply(lambda x: df.columns.get_loc(x))

df['new'] = [df.iloc[i].values for i in df.index]

df['pre_peak'] = df.apply(lambda x: max(x['new'][0:x['nadir_qtr']]), axis=1)

df['post_peak'] = df.apply(lambda x: max(x['new'][x['nadir_qtr']:]), axis=1)

df['pre_peak_qtr'] = pd.Series([s[i] for i, s in zip(df.index, df['pre_peak'].apply(

    lambda x: [i for i in (df.iloc[:,0:-6] == x)

               .idxmax(axis=1)]))]).apply(lambda x: df.columns.get_loc(x))

df['post_peak_qtr'] = pd.Series([s[i] for i, s in zip(df.index, df['post_peak'].apply(

    lambda x: [i for i in (df.iloc[:,0:-6] == x)

               .idxmax(axis=1)]))]).apply(lambda x: df.columns.get_loc(x))

df_new = df[['nadir', 'nadir_qtr', 'pre_peak', 'pre_peak_qtr', 'post_peak', 'post_peak_qtr']]

df_new

Out[1]: 

         nadir  nadir_qtr   pre_peak  pre_peak_qtr  post_peak  post_peak_qtr

idx                                                                         

0    4039370.0          7  4114911.0             1  4254681.0             11

1      21566.0          1    21226.0             0    23232.0              5

2      95958.0          7   103054.0             5   123064.0              9

3      22080.0         11    24186.0             2    22080.0             11

4       6722.0          7     7906.0             1     8326.0             11


查看完整回答
反對 回復 2023-08-22
  • 1 回答
  • 0 關注
  • 4224 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號