抱歉,如果这是某种形式的重复,我看了20个不同的问题,但没有一个对我有帮助。如果有人可以指出要回答我的问题,我会很乐意删除我的问题。
我有两个数据框,第一个被称为df_full各种列的长列表,其中一个被称为“行业”,并且具有各种行业的字符串。df_full['Industry'].head()
是:
指数 | 行业 |
---|---|
0 | 服务 |
1个 | 服务 |
2 | 贸易方式 |
3 | 服务 |
4 | 制造业 |
我的第二个数据帧称为df_industry,并具有基于每个行业的分位数。df_industry['profit_sales']
是:
行业 | ||
---|---|---|
金融 | 0.25 | 0.025616 |
0.50 | 0.219343 | |
0.75 | 0.410408 | |
制造业 | 0.25 | -0.012373 |
0.50 | 0.002032 | |
0.75 | 0.010331 | |
服务 | 0.25 | -0.012660 |
0.50 | 0.003375 | |
0.75 | 0.064102 | |
贸易方式 | 0.25 | -0.102178 |
0.50 | 0.001715 | |
0.75 | 0.018705 | |
运输 | 0.25 | -0.042755 |
0.50 | -0.042755 | |
0.75 | 0.056487 |
我正在尝试根据色谱柱行业的数据为我的第一个具有0.5分位数的数据框创建一个新色谱柱。
因此,我的新输出表应如下所示: df_full[['Industry','quantile_05']].head()
指数 | 行业 | 分位数_05 |
---|---|---|
0 | 服务 | 0.003375 |
1个 | 服务 | 0.003375 |
2 | 贸易方式 | 0.001715 |
3 | 服务 | 0.003375 |
4 | 制造业 | 0.002032 |
我目前尝试无济于事: df_full['quantile_05'] = df_full.apply(lambda x: df_industry['profit_sales'][df_full['Industry'][x]][0.5] ,axis=1)
您似乎可以制作地图:
df_full['quantile_05'] = df_full['Industry'].map(df_industry['profit_sales'].unstack()[0.5])
输出:
Industry quantile_05
INDEX
0 Service 0.003375
1 Service 0.003375
2 Trade 0.001715
3 Service 0.003375
4 Manufacturing 0.002032
如果您想要所有三个分位数,则可以merge
按照Kyle的建议进行:
df_full.merge(df_industry['profit_sales'].unstack(),
left_on=['Industry'],
right_index=True,
how='left')
输出:
Industry 0.25 0.5 0.75
INDEX
0 Service -0.012660 0.003375 0.064102
1 Service -0.012660 0.003375 0.064102
2 Trade NaN 0.001715 0.018705
3 Service -0.012660 0.003375 0.064102
4 Manufacturing -0.012373 0.002032 0.010331
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句