gpt4 book ai didi

python - 在 Pandas python 中聚合数据

转载 作者:行者123 更新时间:2023-12-01 02:54:23 24 4
gpt4 key购买 nike

我在 Pandas 中有一个 Dataframe dfa,其中包含大约 12103 行和大约 10 列。现在,我将利用 dfa 构建一个新的 Dataframe dfb,其中应考虑 dfa 中的前 300 行来计算 dfb 中的每一行,例如:

 value1= dfa['one'].std()
value2=dfa['one'].max()

获取具有 40 (12103/300) 个条目的 dfb。基本上,dfb 的第一行有两列(例如,value1、value2)包含如上所述计算的值,第二行包含从 dfa 的第 301 行到第 600 行计算的值。

谢谢

最佳答案

IIUC,让我们尝试使用 groupbystack:

 dfa.groupby(dfa.index // 300).apply(lambda x: pd.Series({'max':x.stack().max(),'std':x.stack().std()}))

MVCE:

dfa = pd.DataFrame(np.random.randint(1,100,(10,10)), columns=list('ABCDEFGHIJ'))
print(dfa)

输出:

    A   B   C   D   E   F   G   H   I   J
0 81 15 57 42 90 25 72 98 6 8
1 44 63 39 29 11 3 80 15 43 47
2 68 97 42 93 19 73 28 25 2 83
3 38 52 65 61 79 82 98 60 76 93
4 68 39 62 48 44 19 44 47 54 26
5 52 93 14 37 48 81 6 20 91 30
6 39 15 22 48 22 8 35 60 72 43
7 13 26 24 74 41 36 92 93 13 85
8 2 46 35 21 92 15 66 19 87 66
9 77 13 15 69 3 81 75 30 64 63

在我的示例中一次创建 2 行而不是 300 行的 dfb。

dfb = dfa.groupby(dfa.index // 2).apply(lambda x: pd.Series({'max':x.stack().max(),'std':x.stack().std()}))
print(dfb)

输出:

    max        std
0 98.0 29.754080
1 98.0 28.086521
2 93.0 24.203686
3 93.0 27.390884
4 92.0 30.153072

关于python - 在 Pandas python 中聚合数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44368693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com