Groupby大于Pandas中的速度非常慢

史蒂文

我有下表作为熊猫数据框。我需要计算所有的Part Number地方Net Sales是大于Recommended Price一个给定的一部分。

输入:above_master

  Short Number  Net Sales    Part Number   Recommended Price
0       MU2146     413.25      MU2146      385.949155
1       MU2146     433.12      MU2146      385.949155
2       MU2146     498.12      MU2146      385.949155
3       MU1609     146.07      MU1609      149.138978
4       MU1609     246.17      MU1609      149.138978

要求的输出

Part Number count
MU2146       3 
MU1609       1

使用的代码

for number in range(len(above_master.index)):
    cal_s1 = above_master[above_master['Net Sales'] > above_master.iloc[number]['Recommended Price'] ].groupby('Part Number')['Recommended Price'].count()
    cal_s2 = cal_s1.to_frame().reset_index()
    cal_s3 = cal_s2.loc[cal_s2['Part Number'] == above_master.iloc[number]['Part Number']]
    cal_s4 = cal_s4.append(cal_s3, ignore_index=True)

这可以正常工作,但是需要很长时间。

用户名

loc搭配使用size

df.loc[df['Recommended Price'].lt(df['Net Sales'])].groupby('Part Number').size()

Part Number
MU1609    1
MU2146    3
dtype: int64

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章