我有一个数据框有两列'id'和'时间'。需要计算ID的平均时间,并将结果放入具有新列名称的新数据框中。输入数据帧:Python Pandas:如何将DataFrame groupby的结果放在具有新列名的数据框中?
id time
0 1 1
1 1 1
2 1 1
3 1 1
4 1 2
5 1 2
6 2 1
7 2 1
8 2 2
9 2 2
10 2 2
11 2 2
我的代码:
import pandas as pd
my_dict = {
'id': [1,1,1, 1,1,1, 2,2,2, 2,2,2],
'time':[1,1,1, 1,2,2, 1,1,2, 2,2,2]
}
df = pd.DataFrame(my_dict)
x = df.groupby(['id'])['time'].mean()
# x is a pandas.core.series.Series
type(x)
y = x.to_frame()
# y is pandas.core.frame.DataFrame
type(y)
list(y)
在运行这段代码的结果:
In [14]: y
Out[14]:
time
id
1 1.333333
2 1.666667
GROUPBY返回熊猫系列 'X',然后我转换为数据帧“Y ”。 如何将输出'y'数据框的列名从'time'更改为其他内容,例如'mean'?理想情况下,我需要两栏输出数据框:'id'和'mean'。这个怎么做?
UPDATE2:
Y = x.to_frame( '意味着')reset_index()
解决问题!
2016-12-18
zork