捕获连续行中列的值的更改

时间:2017-11-10 11:12:28

标签: python pandas dataframe

我目前有以下数据框

enter image description here

需要创建一个新的二进制数据框,它应用以下逻辑:

- 如果任何列中的值为> = 1.5且前值为< 1.5,则显示为1。

- 继续显示1,除非值下降< = 0,然后输入0。

因此,将此应用于上述内容应该产生:

enter image description here

知道如何最有效地完成这项工作吗?

1 个答案:

答案 0 :(得分:1)

这是我认为应该有效的方法。 首先为每个现有列创建新列,这些列将包含向上移动一列的现有列。 即如果A是0 1 1.5 创建A1到1 1.5南 你可以使用熊猫转移来做到这一点。 为所有列做这件事 然后, if df是dataFrame的名称

not_found_zero=1
for row in df.iterrows():
   if(not_found_zero):
        if row['A']<=0:
           row['A']=0
           flag=0
         else:
            row['A'] =(row['A']>=1.5) & (row['A1']>=1.5))   
    else:
       row['A']=0

对所有列执行此操作,并记住在移位后,A1的最后一列将为nan。 完成后删除temperory行。