Pandas Python中的分组处理

Swepab

我的问题围绕在以下外观的Pandas DataFrame中应用逻辑:

ID yyyymm value1 value2
1 201501 0 123
1 201502 1 113
1 201503 3 115
2 201506 0 0
2 201507 0 0
2 201508 1 115
2 201509 0 0
3 201503 0 0
3 201504 0 0
3 201505 0 0

我想要做的是根据yyyymm -variable中时间值的连续顺序来计算每个ID的时间差我想从每个id的开头开始计数,当value1 > 0时,然后保存时间戳。value2相同,当它变为> 0时,我想保存时间戳,以下面的表2结尾。

ID time_value1 value1 time_value2 value2
1 1 1 0 123
2 2 1 2 115

我有SAS背景,并且通过组处理直接做到这一点。

下表的代码:

data = pd.DataFrame({'ID':[1,1,1,2,2,2,2,3,3,3],
                'yyyymm':[201501,201502,201503,201506,201507,201508,201509,201503,201504,201505],
                'value1':[0,1,3,0,0,1,0,0,0,0],
                'value2':[123,113,115,0,0,115,0,0,0,0]})

预先感谢您的宝贵时间!

西蒙

这将按日期排序,按ID分组,并找到value1或value2> 0的行,将该行保存到另一个数据框中,然后移至下一个ID组。如果每个组ID要保存1个以上,只需删除中断

我不知道最终数据帧的“ time_value1”或“ time_value2”列中想要的值,但是您可以轻松地将该变量分配编辑为所需的值

import pandas as pd

data = pd.DataFrame({'ID':[1,1,1,2,2,2,2,3,3,3],
                'yyyymm':[201501,201502,201503,201506,201507,201508,201509,201503,201504,201505],
                'value1':[0,1,3,0,0,1,0,0,0,0],
                'value2':[123,113,115,0,0,115,0,0,0,0]})

final = pd.DataFrame(columns=["ID", "time_value1", "value1", "time_value2", "value2"])

def findTimes(df):
    for index, row in df.iterrows():
        if row["value1"] > 0 or row["value2"] > 0:

            final.loc[index,"ID"] = row["ID"]
            final.loc[index,"time_value1"] = row["value1"]
            final.loc[index,"value1"] = row["value1"]
            final.loc[index,"time_value2"] = row["value2"]
            final.loc[index,"value2"] = row["value2"]

            break

data.sort_values("yyyymm").groupby("ID").apply(lambda x: findTimes(x))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

应用并分组在Pandas python中

来自分类Dev

分组并计算pandas / python中的条件值

来自分类Dev

Pandas (Python) 中按数据分组的总和

来自分类Dev

在Python Pandas数据透视表中对列进行分组

来自分类Dev

在Python Pandas数据透视表中对列进行分组

来自分类常见问题

Python Pandas:按分组分组,平均?

来自分类Dev

Python pandas 以不同的方式分组

来自分类Dev

Python Pandas:如何对分组中的所有项目进行分组并为其分配ID?

来自分类Dev

Python Pandas处理字符串中的特殊字符

来自分类Dev

在Python Pandas Dataframe中动态添加列的数据处理

来自分类Dev

Python Pandas处理308请求

来自分类Dev

分组并输出部分列值pandas python

来自分类Dev

Python Pandas-按字段分组并汇总

来自分类Dev

Python Pandas根据案例陈述进行分组

来自分类Dev

Python Pandas分组的月份和年份

来自分类Dev

Python Pandas:如何分组和比较列

来自分类Dev

分组值并使用Python在Pandas上合并

来自分类Dev

Python分组并使用Pandas聚合多列

来自分类Dev

Python Pandas - 分组为命名元组列表

来自分类Dev

使用 Python Pandas 进行枚举和分组

来自分类Dev

从pandas DataFrame中的分组数据绘制直方图

来自分类Dev

在Pandas DataFrame列表中的分组项

来自分类Dev

在Pandas中对期间序列值进行分组

来自分类Dev

在 Pandas DataFrame 中按连续索引分组

来自分类Dev

循环遍历 Pandas 中的分组列

来自分类Dev

使用Python Pandas进行多种分组和分组汇总

来自分类Dev

分组值并根据Pandas中的列删除分组的重复项

来自分类Dev

在Python Pandas数据框中对唯一值进行分组和计数

来自分类Dev

Python Pandas:使用方法链接将列添加到分组的DataFrame中

Related 相关文章

热门标签

归档