为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫将数据子集应用于新数据框

熊猫将数据子集应用于新数据框

炎炎设计 2022-06-28 17:26:58
我有一个脚本,我可以在其中使用数据框并提取如下数据:times = pd.Series(df.loc[df['sy_x'].str.contains('AA'), ('t_diff')].quantile([.1, .25, .5, .75, .9]))我想将结果数据从quantile()每个分位数添加到具有单独列的数据框中,假设这些列是:   ID pt_1 pt_2 pt_5 pt_7 pt_9   AA   BB   CC如何将分位数添加到 ID 的每一行?new_df = Nonefor index, value in times.items():   for col in df[['pt_1', 'pt_2','pt_5','pt_7','pt_9',]]:..但这感觉不对,而且不习惯。我应该使用loc还是iloc?我还有几个系列需要添加到其他未显示的列中,但我想一旦我知道我就可以弄清楚编辑:一些输出times看起来像:0.1  -0.50.25 -0.30.5   0.00.75  2.00.90  4.0提前感谢您的任何见解
查看完整描述

2 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

IIUC,你想要一个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


查看完整回答
反对 回复 2022-06-28
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

尝试类似:

pd.DataFrame(times.values.T, index=times.keys())


查看完整回答
反对 回复 2022-06-28
  • 2 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信