我正在尝试计算我的熊猫数据框中的平均每月误差值:
df
输出:
timestamp error
0 2016-01-01 1.402315
1 2016-01-02 2.100072
2 2016-01-03 2.127035
3 2016-01-04 1.371335
.. ... ...
362 2016-12-28 2.189454
363 2016-12-29 1.411169
我想计算每月错误值,所以我尝试:
df=df.groupby(df['timestamp'].dt.strftime('%B'))['error'].mean().sort_values()
这给了我输出:
timestamp
March 1.505680
July 1.728256
June 1.760756
August 1.796719
September 1.830922
October 1.922697
February 2.021558
May 2.100005
December 2.143730
April 2.316473
November 2.491638
January 2.551331
我似乎无法对它们进行排序,因此它们的顺序为jan,feb,mar,pril等,因此在绘图中,月份在xaxis上的顺序正确。有什么想法吗?
答案 0 :(得分:2)
您可以使用以下内容:
a ( b ( ...args))
f2( f3( f4( 2 ) ) )
# Print small dataframe which was provided
print(df)
timestamp error
0 2016-01-01 1.402315
1 2016-01-02 2.100072
2 2016-01-03 2.127035
3 2016-01-04 1.371335
362 2016-12-28 2.189454
363 2016-12-29 1.411169
答案 1 :(得分:0)
Pandas为此具有内置功能,因此更简单(另请参见How can I Group By Month from a Date field using Python/Pandas)
你可以做
df.groupby(df['timestamp'].dt.month).mean()
它将按月进行均值,并将索引作为月数,因此它们将按1月-> 12月的顺序排序。