- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
假设我有一个 DataFrame:
df = pd.DataFrame({'CATEGORY':['a','b','c','b','b','a','b'],
'VALUE':[pd.np.NaN,1,0,0,5,0,4]})
看起来像
CATEGORY VALUE
0 a NaN
1 b 1
2 c 0
3 b 0
4 b 5
5 a 0
6 b 4
我把它分组:
df = df.groupby(by='CATEGORY')
现在,让我借助一组“b”上的示例展示我想要的东西:
df.get_group('b')
b组:
CATEGORY VALUE
1 b 1
3 b 0
4 b 5
6 b 4
我需要:在每组范围内,统计VALUE
之间的diff()值,跳过所有 NaN
s 和 0
秒。所以结果应该是:
CATEGORY VALUE DIFF
1 b 1 -
3 b 0 -
4 b 5 4
6 b 4 -1
最佳答案
您可以使用 diff
在删除 0
和 NaN
值后减去值:
df = pd.DataFrame({'CATEGORY':['a','b','c','b','b','a','b'],
'VALUE':[pd.np.NaN,1,0,0,5,0,4]})
grouped = df.groupby("CATEGORY")
# define diff func
diff = lambda x: x["VALUE"].replace(0, np.NaN).dropna().diff()
df["DIFF"] = grouped.apply(diff).reset_index(0, drop=True)
print(df)
CATEGORY VALUE DIFF
0 a NaN NaN
1 b 1.0 NaN
2 c 0.0 NaN
3 b 0.0 NaN
4 b 5.0 4.0
5 a 0.0 NaN
6 b 4.0 -1.0
关于python - 条件下的 DataFrameGroupBy diff(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43140444/
我有一个 pandas 数据框,我希望对数据中的不同组执行相同的滚动操作。考虑以下包含四列的 df(请参阅问题底部以了解要构造的代码): id date category t
我需要在 DataFrameGroupBy 对象上使用 slice。 例如,假设有 DataFrame 和 A-Z 列,如果我想使用 A-C 列,我将使用 .loc [:, 'A':'C'],但是当我
我正在处理这个数据集 census.csv 代码: df = pd.read_csv('Data/census.csv') df = df[df['SUMLEV']==50] print(df.hea
我有一个数据帧数据。分组并重置索引后,我无法将日期列设置为索引。 data = data.groupby('Payment Date ') data['Payment Amount '].sum().
我有一个 Python 中的 panda 数据框,我正在其中应用 groupby。然后我想对之前的结果应用新的 groupby + sum 。更具体地说,首先我正在做: check_df = da
这是我的数据框 df 1.1 1.2 1.3 2.1 ... 5.1 6.1 6.2. 6.3. sample_a 1 1 2 4
我有一个带有日期时间索引的一列数据。我可以使用按年和月对数据框进行分组 grouped = data.groupby([lambda x: x.year, lambda x: x.month]) 我想
Python版本:3.7.3 有人问过类似的问题here ,但并不完全相同。 根据条件,我想仅检索 DataFrameGroupBy 对象每组的子集。基本上,如果 DataFrame 以仅包含 NAN
我需要通过仅考虑给定百分位范围之间的值来估计 pandas DataFrameGroupBy 的平均值。 例如,给定片段 import numpy as np import pandas as pd
我有一个类型为DataFrameGroupBy 的grouped 对象。我想用它来聚合一些数据,如下所示: aggregated = grouped.aggregate([np.sum, np.mea
有没有办法对 DataFrameGroupBy 对象进行切片? 例如,如果我有: df = pd.DataFrame({'A': [2, 1, 1, 3, 3], 'B': ['x', 'y', 'z
这是数据: df = pd.DataFrame({ 'date':[1,1,2,2,2,3,3,3,4,5], 'request':[2,2,2,3,3,2,3,3,3,3],
我有一个包含 Date 列的数据框,我按年份对数据进行分组,然后可以计算均值和中位数。但是如何计算众数呢?这是我得到的错误: >>> np.random.seed(0) >>> rng = pd.da
我有一个数据框,其中一列是分类数据,其余是 float 数据。我根据数据的类型将这两者分开。两个数据帧都有时间戳,时间戳是它们的索引。 我正在尝试聚合数字数据的统计数据以及分类数据的最常见标签 5 分
假设我有一个 DataFrame: df = pd.DataFrame({'CATEGORY':['a','b','c','b','b','a','b'], 'V
我已按 host 和 operation 列对以下 DF 进行分组: df Out[163]: Int64Index: 100 entries, 10069 to 1003 Data columns
我在玩apply时做了一个观察和agg DataFrameGroupBy的方法我无法解释的物体。 简介 我理解以下代码,但它作为问题的介绍可能有用。 我正在对 DataFrame 进行分组my_df
我正在尝试将分组记录的计数导出到 Excel。 我有这样的 CSV 文件: Date Country Sub Source 2014-09-11 US 1 s
我有一个名为“grouped”的 DataFrameGroupBy 对象,如下所示: for key, item in grouped: print('key: {0}, value: {1}
假设,有这样一张表: Id | Type | Guid 我在这样的表上执行以下操作: df = df.groupby('Id') 现在我想先遍历 n行和每个特定的 Id作为list打印列 Guid 中
我是一名优秀的程序员,十分优秀!