繁体   English   中英

比较数据帧行和赋值的最佳方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM