赞
踩
编辑推荐:
来源csdn
,文章通过美国官方网站的几个案例详细讲解了Python数据分析,介绍较为详细,更多内容请参阅下文。
import json
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
1.USA.gov Data from Bitly
此数据是美国官方网站从用户那搜集到的匿名数据。
path='datasets/bitly_usagov/example.txt'
data=[json.loads(line) for line in open(path)]
df=pd.DataFrame(data)
df.info()
tz字段包含的是时区信息。
df.loc[:,'tz'].value_counts()[:10]
根据info()与value_counts()的返回结果来看,tz列存在缺失值与空值,首先填充缺失值,然后处理空值:
clean_tz=df.loc[:,'tz'].fillna('missing')
clean_tz.loc[clean_tz=='']='unkonwn'
clean_tz.value_counts()[:5]
plt.clf()
subset=clean_tz.value_counts()[:10]
subset.plot.barh()
plt.show()
a字段包含的是浏览器、设备与应用等信息。
df.loc[:,'a'].sample(10)
假设我们需要统计windows与非windows的相关量,我们要抓取a字段中的’Windows’字符串。因为a字段同样存在缺失值,这里我们选择丢弃缺失值:
clean_df=df[df.loc[:,'a'].notnull()]
mask=clean_df.loc[:,'tz']==''
clean_df.loc[:,'tz'].loc[mask]='unkonwn'
mask=clean_df.loc[:,'a'].str.contains('Windows')
clean_df.loc[:,'os']=np.where(mask,'Windows','not
Windows')
clean_df.drop('a',axis=1,inplace=True)
by_tz_os=clean_df.groupby(['tz','os'])
tz_os_counts=by_tz_os.size().unstack().fillna(0)
indexer=tz_os_counts.sum(axis=1).argsort() #返回排序后的索引列表
tz_os_counts_subset=tz_os_counts.take(indexer[-10:])
#取得索引列表的后十条
tz_os_counts_subset
plt.clf()
tz_os_counts_subset.plot.barh()
plt.show()
因为不同地区的数量差异悬殊,如果我们要更清楚得查看系统差异,还需要将数据进行归一化:
tz_os_counts_subset_norm = tz_os_counts_subset.values / tz_os_counts_subset.sum (axis=1).values.reshape (10,1)
#转换成numpy数组来计算百分比
tz_os_counts_subset_norm= pd.DataFrame (tz_os_counts_subset_norm,
index= tz_os_counts_subset.index,
columns= tz_os_counts_subset.columns)
plt.clf()
tz_os_counts_subset_norm.plot.barh()
plt.show()
# MovieLens
rating_col=['UserID','MovieID','Rating','Timestamp']
user_col=['UserID','Gender','Age','Occupation','Zip-code']
movie_col=['MovieID','Title','Genres']
ratings=pd.read_table ('datasets/movielens/ratings.dat', header=None,sep='::',names=rating_col,engine='python')
users=pd.read_table ('datasets/movielens/users.dat', header=None,sep='::',names=user_col,engine='python')
movies=pd.read_table ('datasets/movielens/movies.dat', header=None,sep='::',names=movie_col,engine='python')
ratings.sample(3)
users.sample(3)
movies.sample(3)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。