炎炎設(shè)計(jì)
2022-06-28 17:26:58
我有一個(gè)腳本,我可以在其中使用數(shù)據(jù)框并提取如下數(shù)據(jù):times = pd.Series(df.loc[df['sy_x'].str.contains('AA'), ('t_diff')].quantile([.1, .25, .5, .75, .9]))我想將結(jié)果數(shù)據(jù)從quantile()每個(gè)分位數(shù)添加到具有單獨(dú)列的數(shù)據(jù)框中,假設(shè)這些列是: ID pt_1 pt_2 pt_5 pt_7 pt_9 AA BB CC如何將分位數(shù)添加到 ID 的每一行?new_df = Nonefor index, value in times.items(): for col in df[['pt_1', 'pt_2','pt_5','pt_7','pt_9',]]:..但這感覺不對,而且不習(xí)慣。我應(yīng)該使用loc還是iloc?我還有幾個(gè)系列需要添加到其他未顯示的列中,但我想一旦我知道我就可以弄清楚編輯:一些輸出times看起來像:0.1 -0.50.25 -0.30.5 0.00.75 2.00.90 4.0提前感謝您的任何見解
2 回答

函數(shù)式編程
TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
IIUC,你想要一個(gè)groupby():
# toy data
np.random.seed(1)
df = pd.DataFrame({'sy_x':np.random.choice(['AA','BB','CC'], 100),
't_diff': np.random.randint(0,100,100)})
df.groupby('sy_x').t_diff.quantile((0.1,.25,.5,.75,.9)).unstack(1)
輸出:
0.10 0.25 0.50 0.75 0.90
sy_x
AA 16.5 22.25 57.0 77.00 94.5
BB 9.1 21.00 58.5 80.25 91.3
CC 9.7 23.25 40.5 65.75 84.1
添加回答
舉報(bào)
0/150
提交
取消