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