- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个类型为DataFrameGroupBy
的grouped
对象。我想用它来聚合一些数据,如下所示:
aggregated = grouped.aggregate([np.sum, np.mean], axis=1)
这将返回一个 DataFrame
,其格式为:
aggregated[:3].to_dict()
"""
{('VALUE1', 'sum'): {
('US10adam034', 'PRCP'): 701,
('US10adam036', 'PRCP'): 1015,
('US10adam036', 'SNOW'): 46},
('VALUE1', 'mean'): {
('US10adam034', 'PRCP'): 100.14285714285714,
('US10adam036', 'PRCP'): 145.0,
('US10adam036', 'SNOW'): 46.0}}
"""
打印头部会产生这样的结果:
VALUE1
sum mean
ID ELEMENT
US10adam034 PRCP 701 100.142857
US10adam036 PRCP 1015 145.000000
SNOW 46 46.000000
US10adam046 PRCP 790 131.666667
US10adam051 PRCP 5 0.555556
US10adam056 PRCP 540 31.764706
SNOW 25 1.923077
SNWD 165 15.000000
效果很好。它可以轻松地为我的示例计算总和 和均值,其中分组索引为(ID, ELEMENT)
。但是,我真的很想将它变成单行格式,其中 ID 是唯一的 并且列是 ELEMENT
和 (总和|平均值)
。我可以几乎像这样使用apply
到达那里:
def getNewSeries(t):
# type(t) => Series
element = t.name[1] # t.name is a tuple ('ID', 'ELEMENT')
sum_index=f'{element}sum'
mean_index=f'{element}mean'
return pd.Series(t['VALUE1'].values, index=[sum_index, mean_index])
aggregated.apply(getNewSeries, axis=1, result_type='expand')
再次打印头部我得到:
PRCPmean PRCPsum SNOWmean SNOWsum SNWDmean ...
ID ELEMENT
US10adam034 PRCP 100.142857 701.0 NaN NaN NaN
US10adam036 PRCP 145.000000 1015.0 NaN NaN NaN
SNOW NaN NaN 46.000000 46.0 NaN
US10adam046 PRCP 131.666667 790.0 NaN NaN NaN
US10adam051 PRCP 0.555556 5.0 NaN NaN NaN
US10adam056 PRCP 31.764706 540.0 NaN NaN NaN
SNOW NaN NaN 1.923077 25.0 NaN
SNWD NaN NaN NaN NaN 15.0
我希望我的最终 DataFrame 看起来像这样:
PRCPmean PRCPsum SNOWmean SNOWsum SNWDmean ...
ID
US10adam034 100.142857 701.0 NaN NaN NaN
US10adam036 145.000000 1015.0 46.000000 46.0 NaN
US10adam046 131.666667 790.0 NaN NaN NaN
US10adam051 0.555556 5.0 NaN NaN NaN
US10adam056 31.764706 540.0 1.923077 25.0 15.0
有没有办法使用apply
、agg
或transform
将这些数据聚合成单行?我也尝试过在唯一 ID 上创建自己的迭代器,但速度非常慢。我喜欢使用 agg
计算总和/均值的简便性。
最佳答案
我喜欢将 f-string 与列表推导一起使用.. f-string 格式化需要 Python 3.6+。
df_out = df.unstack()['VALUE1']
df_out.columns = [f'{i}{j}' for i, j in df_out.columns]
df_out
输出:
PRCPsum SNOWsum PRCPmean SNOWmean
US10adam034 701.0 NaN 100.142857 NaN
US10adam036 1015.0 46.0 145.000000 46.0
关于python - 如何展平 Pandas DataFrameGroupBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57101125/
我有一个 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 中
我是一名优秀的程序员,十分优秀!