遍历数据框并在每次满足条件时创建新的数据框

从SQL查询中,我提取了商店中发生的活动的列表,其中一列具有名为“ STATUS”的标签。

每次“状态”标签更改时,我都希望向下移动数据框并拉整行

  • 我已经从查询中创建了一个数据框,并将其命名为 df
  • 将列类型更改为我所需的
  • 创建所有列标题的列表
  • 使用该列表创建一个我要附加到的空数据框
  • 尝试使用上述条件创建for循环
    headerlist = df.columns.values.tolist() 

    newdf = pd.DataFrame(columns=headerlist)

    for index,row in df.iterrows():

        if df.STATUS[i] != df.STATUS[i-1]:
            newdf = newdf.append(i)

我在这里上传了一张图片,该图片代表了我要实现的目标。

提前谢谢

https://imgur.com/a/XXEOlKs

fuchen333 回答:遍历数据框并在每次满足条件时创建新的数据框

不确定这是最好的答案:(对Python来说也是新来的)

假设您的原始数据帧是df

for even,odd in zip(df.iloc[::2],df.iloc[1::2]):
    if even.status!=odd.status:
        #do you append here

您应该提供一个可运行的df示例,以便我们可以在发布代码之前运行我们的代码,以确保它确实有效

,

我想我明白了!发布前我尝试了一个小时,发布后立即点击

它比for循环简单得多。

我创建了一个名为“ MATCH”的新列,该列的布尔值为“ STATUS”的新值是否等于前一个值。

然后我仅按df.STATUS == False

进行过滤

'''python df ['MATCH'] = df.STATUS.eq(df.STATUS.shift())'''

,

尝试一下

df[df['STATUS'].ne(df['STATUS'].shift().bfill())]
本文链接:https://www.f2er.com/3157900.html

大家都在问