当前位置:   article > 正文

python数据分析简单实例-利用Python进行数据分析――基础示例

python数据分析简单案例

编辑推荐:

来源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()

2019032821.png

tz字段包含的是时区信息。

df.loc[:,'tz'].value_counts()[:10]

2019032822.png

根据info()与value_counts()的返回结果来看,tz列存在缺失值与空值,首先填充缺失值,然后处理空值:

clean_tz=df.loc[:,'tz'].fillna('missing')

clean_tz.loc[clean_tz=='']='unkonwn'

clean_tz.value_counts()[:5]

2019032823.png

plt.clf()

subset=clean_tz.value_counts()[:10]

subset.plot.barh()

plt.show()

2019032824.png

a字段包含的是浏览器、设备与应用等信息。

df.loc[:,'a'].sample(10)

2019032825.png

假设我们需要统计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

2019032826.png

plt.clf()

tz_os_counts_subset.plot.barh()

plt.show()

2019032827.png

因为不同地区的数量差异悬殊,如果我们要更清楚得查看系统差异,还需要将数据进行归一化:

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()

2019032828.png

# 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)

2019032829.png

users.sample(3)

20190328210.png

movies.sample(3)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/803160
推荐阅读
相关标签
  

闽ICP备14008679号