猿问

如何使用来自分组的统计信息将列添加到数据框

让我们考虑以下 DataFrame:


d = {'timestamp': ['2019-04-01', '2019-04-01', '2019-04-02', '2019-04-02', '2019-04-02'],\

     'type': ['A', 'B', 'B', 'B', 'A'],\

     'value': [3, 4, 4, 2, 5]}


df = pd.DataFrame(data=d)


    timestamp   type    value

0   2019-04-01  A       3

1   2019-04-01  B       4

2   2019-04-02  B       4

3   2019-04-02  B       2

4   2019-04-02  A       5

我想获得的是另一列,其中包含特定时间段和类型内所有值的度量。例如,每天每种类型的标准偏差。


LEATH
浏览 152回答 1
1回答

不负相思意

使用GroupBy.std:df = df.groupby(['timestamp','type'])['value'].std().reset_index()print (df)    timestamp type     value0  2019-04-01    A       NaN1  2019-04-01    B       NaN2  2019-04-02    A       NaN3  2019-04-02    B  1.414214如果需要多个指标,可以使用DataFrameGroupBy.describe:df = df.groupby(['timestamp','type'])['value'].describe()print (df)                 count  mean       std  min  25%  50%  75%  maxtimestamp  type                                                2019-04-01 A       1.0   3.0       NaN  3.0  3.0  3.0  3.0  3.0           B       1.0   4.0       NaN  4.0  4.0  4.0  4.0  4.02019-04-02 A       1.0   5.0       NaN  5.0  5.0  5.0  5.0  5.0           B       2.0   3.0  1.414214  2.0  2.5  3.0  3.5  4.0有关聚合的更多信息,请参阅熊猫中的聚合。编辑:如果只需要几个月,请使用Series.dt.month:df['timestamp'] = pd.to_datetime(df['timestamp'])df = df.groupby([df['timestamp'].dt.month.rename('months'),'type'])['value'].describe()print (df)             count      mean       std  min  25%  50%  75%  maxmonths type                                                    4      A       2.0  4.000000  1.414214  3.0  3.5  4.0  4.5  5.0       B       3.0  3.333333  1.154701  2.0  3.0  4.0  4.0  4.0如果需要年份和月份,请使用Series.dt.to_period月份:m = df['timestamp'].dt.to_period('m').rename('months')df = df.groupby([m,'type'])['value'].describe()print (df)              count      mean       std  min  25%  50%  75%  maxmonths  type                                                    2019-04 A       2.0  4.000000  1.414214  3.0  3.5  4.0  4.5  5.0        B       3.0  3.333333  1.154701  2.0  3.0  4.0  4.0  4.0
随时随地看视频慕课网APP

相关分类

Python
我要回答