Python根据另一个数据框中的列值匹配列名

B队

抱歉,如果这是某种形式的重复,我看了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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据与另一个数据框中的值匹配的行数创建新列

如何根据列名将一个数据框中的列值复制到另一个数据框中?

根据另一个数据框中的匹配ID替换数据框列值

Python-根据另一个数据框匹配替换数据框中的值

根据关键列值熊猫将一个数据框中的行与另一个数据框中的行匹配

Python根据另一个数据框值中存在的列索引填充数据框值

根据另一个数据框计算数据框中的列值

根据dplyr与另一个数据框的匹配来更改数据框中的列名称

如果多列中的值与另一个数据框匹配,则根据 pandas 的日期范围获取总和

如何使用 dplyr 根据 R 中的另一个数据框匹配列的值?

如何根据 R 中的另一个数据框匹配列的值并使用 dplyr 打印消息?

将数据框的行号和列名与另一个数据框的值匹配

根据另一个数据集中的列值在一个数据框中创建列

根据python中另一个数据框的2列过滤数据框

根据列中的值填充另一个数据框的值

根据另一个数据框中的列分配值列

根据熊猫中的另一个数据框更改列中的值

根据另一个数据框中给定的值更新数据框列名

通过匹配r中的值和列名,将一个数据框的值合并到另一个数据框

根据另一个数据框python熊猫替换列值-更好的方法?

Python Pandas:根据另一个数据框的类别值创建新列

根据另一个数据框替换列中的值

根据条件从另一个数据框中复制列值

熊猫根据另一个数据框中的匹配列填充新的数据框列

当列值是另一个数据框的列名时的数据框操作

根据另一个数据框中的匹配数据更新一个数据框中的值

根据与另一个数据框的匹配在数据框中创建新列

如何根据另一个数据框中的列的存在来更新数据框中列的值

如何根据R中另一个数据框中的匹配值转换值?