【问题标题】:Dataframe groupby column overlaps with dataframe index when calculating std计算标准时,数据框分组列与数据框索引重叠
【发布时间】:2021-10-13 11:18:38
【问题描述】:

作为说明,我有这些数据。尽管当我根据 Column days as groupby 执行 cumsum 函数时效果很好,因为我对 STD 函数执行与天数列表相同的状态。无意中它使索引号分组

工作代码:

df['Vol'] = df['Lot2'].groupby(df['days']).cumsum()

      Lot2    days    mid    Vol        VWAPx       std
0     550.0      1  75.35    550.0  75.350000       NaN
1     619.0      1  75.30   1169.0  75.323524  0.075410
2     2227.0     1  75.30   3396.0  75.308098  0.710670
3     1776.0     1  75.30   5172.0  75.305317       NaN
4     1000.0     1  75.35   6172.0  75.312557       NaN
5     6274.0     1  75.40  12446.0  75.356637  0.143375
6     5000.0     1  75.35  17446.0  75.354735  0.190802
7     420.0      1  75.35  17866.0  75.354623  0.225577
8     108.0      1  75.30  17974.0  75.354295  0.374943
9     132.0      1  75.35  18106.0  75.354264  0.122366

问题出在这个问题上(因为它返回上面的 std):

df['std'] = df['VWAPx'].groupby(df['days']).std()

所有“天”组的std结果应该相同。

df['std'] = df['VWAPx'].groupby(df['days'], as_index=False).std()

返回 TypeError:as_index=False 仅对 DataFrame 有效

注意:天数列表由 1-30 之间的数字组成(例如不包括 3-4)

【问题讨论】:

    标签: python pandas dataframe pandas-groupby


    【解决方案1】:

    使用transform:

    df['std'] = df['VWAPx'].groupby(df['days']).transform('std')
    print(df)
    
         Lot2  days    mid      Vol      VWAPx       std
    0   550.0     1  75.35    550.0  75.350000  0.022094
    1   619.0     1  75.30   1169.0  75.323524  0.022094
    2  2227.0     1  75.30   3396.0  75.308098  0.022094
    3  1776.0     1  75.30   5172.0  75.305317  0.022094
    4  1000.0     1  75.35   6172.0  75.312557  0.022094
    5  6274.0     1  75.40  12446.0  75.356637  0.022094
    6  5000.0     1  75.35  17446.0  75.354735  0.022094
    7   420.0     1  75.35  17866.0  75.354623  0.022094
    8   108.0     1  75.30  17974.0  75.354295  0.022094
    9   132.0     1  75.35  18106.0  75.354264  0.022094
    

    【讨论】:

    • 非常感谢。你知道吗,为什么它的工作方式与 cumsum() 不同
    • cumsum 返回一个系列而不是 std 返回一个唯一值。 sumstd 具有相同的行为
    猜你喜欢
    • 2021-05-20
    • 2023-02-10
    • 1970-01-01
    • 2020-11-13
    • 2015-04-29
    • 2019-11-07
    • 2018-11-03
    • 2021-10-01
    • 1970-01-01
    相关资源
    最近更新 更多