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

问题描述 投票:0回答:1

我目前有以下数据框

enter image description here

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

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

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

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

enter image description here

知道如何最有效地做到这一点吗?

python pandas dataframe
1个回答
1
投票

这是我认为应该起作用的方法。首先为每个现有列创建新列,这些列将包含向上移动一列的现有列。即如果A是0 1 1.5创建A1到1 1.5南U可以使用pandas shift来做到这一点。为所有列执行此操作然后,如果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行。

© www.soinside.com 2019 - 2024. All rights reserved.