Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将统计数据聚合为新列_Python_Pandas_Dataframe - Fatal编程技术网

Python 将统计数据聚合为新列

Python 将统计数据聚合为新列,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据帧df,有3列:a是一个对象id,B是一个标志,C是一个在对象a上测量的值,带有标志B。 我想计算按[A,B]分组的C的平均值,并将结果存储为三个新列: C0:当B=0 C1:当B=1 C2:当B=2 下面是一个示例,演示了如何将数据帧df转换为res import numpy as np import pandas as pd df = pd.DataFrame({ "A":[0,0,0,0,0,1,2,2,3,3,3], "B":[0,1,2,0,1,2,0,2

我有一个数据帧
df
,有3列:
a
是一个对象id,
B
是一个标志,
C
是一个在对象
a
上测量的值,带有标志
B
。 我想计算按
[A,B]
分组的
C
的平均值,并将结果存储为三个新列:

C0
:当
B=0

C1
:当
B=1

C2
:当
B=2

下面是一个示例,演示了如何将数据帧
df
转换为
res

import numpy as np
import pandas as pd

df = pd.DataFrame({
    "A":[0,0,0,0,0,1,2,2,3,3,3],
    "B":[0,1,2,0,1,2,0,2,0,1,1],
    "C":[.654,.123,1.45,6.1,0.322,1.77,9.234,2.54,1,6.77,6.438]})

grouped = df.groupby(["A","B"]).agg("mean")

# how to transform grouped into res?
res = pd.DataFrame({
    "A":[0,1,2,3],
    "C0":[3.377,np.nan,9.234,1],
    "C1":[0.2225,np.nan,np.nan,6.604],
    "C2":[1.45,1.77,2.54,np.nan]})
添加:

或与默认值
mean
aggregate函数一起使用:

res = df.pivot_table(index="A",columns="B",values='C').add_prefix('C').reset_index()

print (res)
B  A     C0      C1    C2
0  0  3.377  0.2225  1.45
1  1    NaN     NaN  1.77
2  2  9.234     NaN  2.54
3  3  1.000  6.6040   NaN
添加:

或与默认值
mean
aggregate函数一起使用:

res = df.pivot_table(index="A",columns="B",values='C').add_prefix('C').reset_index()

print (res)
B  A     C0      C1    C2
0  0  3.377  0.2225  1.45
1  1    NaN     NaN  1.77
2  2  9.234     NaN  2.54
3  3  1.000  6.6040   NaN