[英]optimal way to compare dataframe rows and assign value
我需要将前一行值与数据帧中的当前行值进行比较,如果同样需要分配前一行值,我已经获得了循环但是需要更多时间需要建议禁食方式
for y in range(1, len(df_modified_filtered)):
if df_modified_filtered['Cost Center'].iloc[y - 1] == df_modified_filtered['Cost Center'].iloc[y] :
df_modified_filtered["costcenter_new"].iloc[y] = df_modified_filtered["costcenter_new"].iloc[y - 1]
需要最佳解决方案
在pandas中使用shift然后比较运算符。
您可以在shift的帮助下以下列方式执行此操作:
有关班次的文档可以在这里找到: https : //pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.shift.html
import numpy as np
df_modified_filtered['costcenter_new']=np.where(df_modified_filtered['Cost Center']==df_modified_filtered['Cost Center'].shift(1),df_modified_filtered['costcenter_new'].shift(1),df_modified_filtered['costcenter_new'])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.