python我的数据生活

2019-03-08  本文已影响0人  哦哟哟

以下是我用2018年数据生活总结,作为2019年一季度学习python的总结实践。

1.心情

我想把心理健康放在第一位来论述。
身体生病了我们会打针吃药找医生,可心理生病了如何医治,至少以国内目前的水平,这方面的意识还不足。我把每个月的心理健康用1-10分打分,6分为及格表示心理稳定,6分以下会有些失落,3分以下就是极度难受了,6分以上会比较开心。


Annual Mental Health Review.jpg

整年的心理状况比较OK,除了年中的小挫折难受了一阵,其他时间我觉得自己都是心理健康的。

#!/usr/bin/python
import pandas as pd
from datetime import datetime
import matplotlib.pyplot as plt
import numpy as np

mental_state=pd.DataFrame({'Month':['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
                           'Mood':[6,6,7,6,6,5,5,6,6,6,7,7],
                            })
mental_state.plot(y=['Mood'])
plt.title("Annual Mental Statement Review",fontsize=16,fontweight='bold')
plt.yticks(np.arange(11,step=2))
plt.xticks(np.arange(13),mental_state['Month'])

plt.savefig('Annual Mental Health Review.jpg')
plt.show()

2.观影读书情况

看完电影电视或者书在豆瓣上mark成为了习惯,每年可以回顾今年的收获。看电影可以感受别人的情感,看书可以感受别人的思想,让我懂得这个世界多样化的存在。
观影情况:

Annual Movie Watched Review.jpg

18年一共看了35部影视作品,包括微电影,电影,电视剧,纪录片和综艺节目,大部分还是电影。1月高峰期看了8部,8月和12月虽然显示没有mark,但是应该也有少量电视剧或者综艺在看的进行中,因为豆瓣上我标记的是完成时间。

df=pd.read_excel('df_movie.xlsx')
df_2018=df.loc[(df['DATE']>datetime(2018,1,1))&(df['DATE']<datetime(2019,1,1))]
df_2018=df_2018.reset_index(drop=True)
MONTH=[]
for i in range(len(df_2018)):
    i=df_2018['DATE'].at[i].month
    MONTH.append(i)
df_2018['MONTH']=MONTH
grouped=pd.DataFrame(df_2018['DATE'].groupby([df_2018['MONTH'],df['TAG']]).count())
grouped=grouped.unstack().fillna(value=0)
output=grouped['DATE']
#将MONTH索引变成列
output['MONTH']=output.index
output=output.reset_index(drop=True)
#增加12个月的缺失数据
fullmonth=pd.DataFrame({'MONTH':[1,2,3,4,5,6,7,8,9,10,11,12]})
output=output.merge(fullmonth,on='MONTH',how='outer').fillna(0).sort_index(by=['MONTH'],ascending=True).set_index('MONTH')
#输出图形
output.plot.bar(stacked=True,color=['green','cyan','steelblue','springgreen','slategray'])
plt.title("Annual Moive Watched Review",fontsize=16,fontweight='bold')
plt.xticks(np.arange(13),['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],rotation=0)
plt.ylabel('movie count')
plt.xlabel('')
plt.savefig('Annual Movie Watch Review.jpg')
plt.show()

原始数据是从豆瓣上爬取的,爬取方法在这里python爬取豆瓣个人主页观影和读书记录

读书情况:

Annual Book Read Review.jpg

18年看了26本书,8月没怎么看影视剧但是看书是高峰,8月看了5本书。12月没有书也没有电影记录,说明19年1月份的会比较多。

df=pd.read_excel('df_book.xlsx')
df_2018=df.loc[(df['DATE']>datetime(2018,1,1))&(df['DATE']<datetime(2019,1,1))]
df_2018=df_2018.reset_index(drop=True)
MONTH=[]
for i in range(len(df_2018)):
    i=df_2018['DATE'].at[i].month
    MONTH.append(i)
df_2018['MONTH']=MONTH
grouped2=pd.DataFrame(df_2018['BOOK'].groupby(df_2018['MONTH']).count())
grouped2['MONTH']=grouped2.index
output2=grouped2.reset_index(drop=True)
#增加12个月的缺失数据
output2=output2.merge(fullmonth,on='MONTH',how='outer').fillna(0).sort_index(by=['MONTH'],ascending=True).set_index('MONTH')
output2.plot.bar(color='deepskyblue')
#输出图形
plt.title("Annual Book Read Review",fontsize=16,fontweight='bold')
plt.xticks(np.arange(13),['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],rotation=0)
plt.ylabel('book count')
plt.xlabel('')
plt.savefig('Annual Book Read Review.jpg')
plt.show()

原始数据是从豆瓣上爬取的,爬取方法在这里python爬取豆瓣个人主页观影和读书记录

3.运动情况

数据采集主要来自运动手环,然后运动APP上会总结出每月的平均步数和平均活动时间。


Annual Training Exercises Review.jpg

上半年手环会带一整天,下半年为了记录运动情况我就是跑步的时候才带上手环,所以下半年记录的是比较真实的运动情况。正常说来平均步数越多平均活动时间也应该越多,但是到了后面发现显示时间的折线图下降了很多,说明我加快跑步速度有所成效。

fitness=pd.DataFrame({'Month':['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
                     'Avg Steps':[5227,9055,6928,7419,4049,5052,4266,3919,5465,4626,3744,4720],
                     'Avg Activity/min':[57,96,73,83,45,53,37,29,45,36,29,50]
                     })
fitness
x=fitness.index
y1=fitness['Avg Steps']
y2=fitness['Avg Activity/min']
#画柱子
fig = plt.figure()
ax1 = fig.add_subplot(111)#将画布分割成1行1列,图像画在从左到右从上到下的第1块
ax1.bar(x, y1,color='deepskyblue')
plt.xticks(np.arange(13),mental_state['Month'])
plt.yticks(np.arange(10000,step=1000))
ax1.set_ylabel('Average Steps',fontsize='14')
ax1.set_title('Annual Training Exercises Review',fontsize='16',fontweight='bold') 

#画折线图
ax2 = ax1.twinx()  
ax2.plot(x, y2, 'purple',marker='*',ms=10)
for x, y ,z in zip(x,y2,y1):
        plt.text(x, y+0.3, str(y), ha='center', va='bottom', fontsize=8,rotation=0)     
ax2.set_ylabel('Average Activity Time by mins',fontsize='14')
     
plt.savefig('Annual Training Exercises Review.jpg')
plt.show()

4.其他情况

生活里还有好多细碎的小事,而这些细碎的小事确实组成了生活本身。从这些小事里我积累着自己的创意和灵感,将日子过得诗一样美好。


other activities.jpg

只闻花香,不谈悲喜,喝茶读书,不争朝夕。
继续好好生活,继续学习python。
阳光暖一点,再暖一点,日子美一些,再美一些。

from pyecharts import WordCloud

other_activities = pd.DataFrame({'activity':['haircut','writing','liveshow','recipe','drawing','melody','mobile game','dubbing','travel'],
                                 'frequency':[4,          11,         0,        13,      30,       1,       1,           24,        4]
                             })
wordcloud = WordCloud(width=1300, height=620)
wordcloud.add("", other_activities['activity'], other_activities['frequency'], word_size_range=[20, 100])
wordcloud.render('other activities.html')
上一篇下一篇

猜你喜欢

热点阅读