使用Python熊猫,如何创建一个函数来计算代表比前一行低的值的行的比例?因此,换句话说,我需要一个函数来遍历Pandas数据框的特定系列列下的值,并且仅计算下一行的值(在称为“ Mileage”的列下)小于当前行值的那些值。就像说你有这样的:里程:第1行:30行2:20行3:40行4:50行5:60第6行:55第7行:75
如果计数器工作正常,它将发现第2行的值20小于第1行的值30,因此它将为计数器加+1(计数为1)。
在上面的示例中,它应该计数的另一行是第6:55行,该行小于上一行的第5:60行,因此计算该行。因此最终计数为:2.然后,我可以将最终计数除以总行数以获得比例。
预先感谢您的任何帮助!
您可以使用以下series.shift
功能执行此操作:
proportion = len(df[df['Mileage'] < df['Mileage'].shift(1)])/len(df)
print(proportion)
输出:
0.2857142857142857
代码的一部分:
df[df['Mileage'] < df['Mileage'].shift(1)]
使用遮罩仅选择满足该条件的行(在本例中为2),因此我们将其len
除以len
df 的总和得到比例。.shift(1)
允许您访问下一行的值,以便您可以通过这种方式与当前行进行比较。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句