如果需要将前一行的值与数据帧中的当前行的值进行比较,则需要将前一行的值与当前行的值进行比较。我已经达到了低谷,但是需要花费更多的时间来建议采用快速方式
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]
需要最佳解决方案
答案 0 :(得分:0)
在熊猫中使用shift,然后使用比较运算符。
答案 1 :(得分:0)
您可以在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'])