如何解决如何在时间序列中使用mean并将其放到列中?
我有这个问题:
bitcoin = pd.read_csv('./Bitcoin/BTC-USD.csv')
bitcoin
然后我有每天的比特币价值...但实际上我想要2018年和2019年每个月的平均值:
bitcoin['Date']=pd.to_datetime(bitcoin['Date'],format="%Y-%m-%d")
bitcoin = bitcoin[(bitcoin['Date']>'2018-01-01') & (bitcoin['Date']<'2020-01-01')]
bitcoin_mean =bitcoin['High'].groupby([bitcoin['Date'].dt.year,bitcoin['Date'].dt.month]).mean()
bitcoin_mean
哪个很好,但是实际上我希望在3个不同的列中使用它,因为我想将其绘制为整数,例如“ Year”,“ Day”和“ Averaged_price”,我该怎么做?
谢谢!
解决方法
import pandas as pd
here的负载BTC-USD.csv
,我也将其放在Github Gists上。
读入数据框:
df = pd.read_csv('BTC-USD.csv')
然后您可以获得每个月的平均值:
df.groupby(df['Date'].apply(lambda row: row.split('-')[1])).mean()
这将为您提供:
(第一列是月份,01是一月,2月02日,等等...)
为什么行得通
df['Date'].apply(lambda row: row.split('-')[1])
是series:
0 08
1 08
2 08
3 08
4 08
..
362 08
363 08
364 08
365 08
366 08
Name: Date,Length: 367,dtype: object
它从每一行获取日期,即2019-08-24
,split()
由-
加上日期,因此得到一个列表:['2019','08','24] 。它从该列表(即月份)中获取1索引(即第二个)元素。我们groupby()使用此变量,然后采用mean()来计算组的均值(搜索mean()
here)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。