如何创建一个 pandas pivot df 聚合值
How to create a pandas pivot df aggregating on value
我有这个数据框
date sym vals
0 2000-01-03 A 1
1 2000-01-04 A 1
2 2000-01-04 A 1
3 2000-01-04 B 2
4 2000-01-04 B 2
5 2000-01-05 B 2
6 2000-01-05 C 3
7 2000-01-05 C 3
8 2000-01-05 C 3
我想要一个看起来像这样的数据透视表 :
sym 2000-01-03 2000-01-04 2000-01-05
A 1.0 1.0 NaN
B NaN 2.0 2.0
C NaN NaN 3.0
但是我下面的代码生成了这样的东西:
date sym 2000-01-03 2000-01-04 2000-01-05
0 A 1.0 1.0 NaN
1 B NaN 2.0 2.0
2 C NaN NaN 3.0
这是我创建 df 和 pivot 的代码:
df = pd.DataFrame({"date": ["2000-01-03", "2000-01-04", "2000-01-04", "2000-01-04", "2000-01-04",
"2000-01-05", "2000-01-05", "2000-01-05", "2000-01-05"],
"sym": ["A", "A", "A", "B", "B","B", "C", "C", "C"],
"vals": [1, 1, 1, 2, 2, 2, 3, 3, 3]
})
df_pivot = (pd.pivot_table(df,
values='vals',
index=[ 'sym'],
columns=['date'],
aggfunc=np.mean )
.reset_index()
)
df_pivot
尝试使用 rename_axis
而不是 reset_index
out = (pd.pivot_table(df,
values='vals',
index=[ 'sym'],
columns=['date'],
aggfunc=np.mean ).rename_axis(None,axis=1)
)
2000-01-03 2000-01-04 2000-01-05
sym
A 1.0 1.0 NaN
B NaN 2.0 2.0
C NaN NaN 3.0
我有这个数据框
date sym vals
0 2000-01-03 A 1
1 2000-01-04 A 1
2 2000-01-04 A 1
3 2000-01-04 B 2
4 2000-01-04 B 2
5 2000-01-05 B 2
6 2000-01-05 C 3
7 2000-01-05 C 3
8 2000-01-05 C 3
我想要一个看起来像这样的数据透视表 :
sym 2000-01-03 2000-01-04 2000-01-05
A 1.0 1.0 NaN
B NaN 2.0 2.0
C NaN NaN 3.0
但是我下面的代码生成了这样的东西:
date sym 2000-01-03 2000-01-04 2000-01-05
0 A 1.0 1.0 NaN
1 B NaN 2.0 2.0
2 C NaN NaN 3.0
这是我创建 df 和 pivot 的代码:
df = pd.DataFrame({"date": ["2000-01-03", "2000-01-04", "2000-01-04", "2000-01-04", "2000-01-04",
"2000-01-05", "2000-01-05", "2000-01-05", "2000-01-05"],
"sym": ["A", "A", "A", "B", "B","B", "C", "C", "C"],
"vals": [1, 1, 1, 2, 2, 2, 3, 3, 3]
})
df_pivot = (pd.pivot_table(df,
values='vals',
index=[ 'sym'],
columns=['date'],
aggfunc=np.mean )
.reset_index()
)
df_pivot
尝试使用 rename_axis
而不是 reset_index
out = (pd.pivot_table(df,
values='vals',
index=[ 'sym'],
columns=['date'],
aggfunc=np.mean ).rename_axis(None,axis=1)
)
2000-01-03 2000-01-04 2000-01-05
sym
A 1.0 1.0 NaN
B NaN 2.0 2.0
C NaN NaN 3.0