【发布时间】:2021-05-06 00:59:36
【问题描述】:
抱歉,如果这是某种重复,我查看了 20 个不同的问题,但没有一个对我有帮助。如果有人能指出我回答这个问题的问题,我很乐意删除我的问题。
我有两个数据框,第一个称为 df_full 各种列的长列表,其中一个称为 'Industry' 并具有各种行业的字符串。 df_full['Industry'].head() 是:
| INDEX | Industry |
|---|---|
| 0 | Service |
| 1 | Service |
| 2 | Trade |
| 3 | Service |
| 4 | Manufacturing |
我的第二个数据框称为 df_industry,并具有基于每个行业的分位数。 df_industry['profit_sales'] 是:
| Industry | ||
|---|---|---|
| Financial | 0.25 | 0.025616 |
| 0.50 | 0.219343 | |
| 0.75 | 0.410408 | |
| Manufacturing | 0.25 | -0.012373 |
| 0.50 | 0.002032 | |
| 0.75 | 0.010331 | |
| Service | 0.25 | -0.012660 |
| 0.50 | 0.003375 | |
| 0.75 | 0.064102 | |
| Trade | 0.25 | -0.102178 |
| 0.50 | 0.001715 | |
| 0.75 | 0.018705 | |
| Transport | 0.25 | -0.042755 |
| 0.50 | -0.042755 | |
| 0.75 | 0.056487 |
我正在尝试为我的第一个数据框创建一个新列,根据列行业的行业,分位数为 0.5。
因此我的新输出表应如下所示,df_full[['Industry','quantile_05']].head()
| INDEX | Industry | quantile_05 |
|---|---|---|
| 0 | Service | 0.003375 |
| 1 | Service | 0.003375 |
| 2 | Trade | 0.001715 |
| 3 | Service | 0.003375 |
| 4 | Manufacturing | 0.002032 |
我目前尝试无济于事:
df_full['quantile_05'] = df_full.apply(lambda x: df_industry['profit_sales'][df_full['Industry'][x]][0.5] ,axis=1)
【问题讨论】:
-
过滤您的 df_industry,使您只有 0.5 行,重命名并加入。如果您发布数据,您可能会得到更明确的答案。