根据其他列行中的过滤值,在pandas数据框中创建一个新列

阿基尔·古普塔(Akhil Gupta)

我有一个包含以下列的数据框:

日期 压缩 价钱
0 2019-01-01 90102 58.02
1个 2019-01-01 90102 81.55
2 2019-01-01 90102 11.97
3 2019-01-01 90102 93.23
4 2019-01-01 90103 13.68

我要创建第4列,该列应具有基于该邮政编码中的最高价格和该日期的价格比率。

所以我用了另一个叫做df_max_price的df

df_max_price = df.groupby(['Date','Zip'], as_index=False)['Price'].max()
日期 压缩 价钱
0 2019-01-01 90102 93.23
1个 2019-01-01 90103 13.68

现在我想在df中添加一个新列,该列应为该日期和邮政编码的Price和maxprice的比率

日期 压缩 价钱
0 2019-01-01 90102 58.02 0.622
1个 2019-01-01 90102 81.55 0.875
2 2019-01-01 90102 11.97 0.128
3 2019-01-01 90102 93.23 1.000
4 2019-01-01 90103 13.68 1.000

计算基于58.02/93.23,依此类推。

有人可以帮我展示如何使用lambda函数完成它。

克里斯

使用groupbytransform

df['ratio'] = df['Price'] / df.groupby(['Date','Zip'], as_index=False)['Price'].transform('max')['Price']

         Date    Zip  Price     ratio
0  2019-01-01  90102  58.02  0.622332
1  2019-01-01  90102  81.55  0.874718
2  2019-01-01  90102  11.97  0.128392
3  2019-01-01  90102  93.23  1.000000
4  2019-01-01  90103  13.68  1.000000

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据现有数据框中的其他列创建一个新列

创建一个基于数据框中其他列的值创建新列的函数

根据数据框的其他列创建一个新的pandas数据框列

根据pandas数据框中的其他列创建一个聚合列

如何在 Pandas 数据框中创建一个新列,其值由同一行中的其他列确定

根据其他列中的值在python 3(pandas)数据框中创建新列

根据 R 中数据框中所有其他列中的字符串值,使用 dplyr 创建一个新列

根据其他2个数据框中的值创建新列

根据其他列创建一个具有值的新列 - 在 R 中

根据其他列R中的不同值创建一个新列R

Python groupby - 根据其他列中的值创建一个新列

Pandas:创建一个新列,在其他两列中的值之间交替

通过查找其他行中的值来创建新的pandas数据框列

根据同一熊猫数据框中其他列的值创建包含布尔值或NaN的新列

如何根据 Pandas 数据框中前一行的行值创建新列?

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

过滤pyspark数据框中的行并创建一个包含结果的新列

根据多种条件在pandas数据框中创建一个新列

根据多个不同的条件在 pandas 数据框中创建了一个新列

根据不同条件在Pandas数据框中创建一个新列

从Pandas数据框中的其他列创建新列

在数据框中创建一个新列,该列具有列表中该行的其他列的值

根据熊猫数据框中其他列的条件和值创建新列

根据其他两个数据框列中的值条件创建新列

根据pandas数据框中的其他列创建新列

根据其他列值从数据框列中的列表中删除最后一个元素

根据python pandas数据框中其他列的值计算新列

根据其他两列中的条件在R中创建一个新列

根据组中其他列中至少一个变量的出现创建新列