pandas数据分析项目总结(一:基本信息检索、apply、合并)

原文地址:https://www.kesci.com/home/project/5c418c295c4cef002c33940d/code

注:代码是在Pycharm上写的。里面用到的数据来自国家统计局(http://data.stats.gov.cn/adv.htm?m=advquery&cn=E0105)。


1. pandas基本信息检索

(1)基本情况

import pandasas pd

df = pd.read_csv("2015年国内主要城市年度数据.csv")

print('--'*20, '\n【1】数据集基本情况探索')#--输出20次然后换行输出“【1】数据集基本情况探索”

print('\n>>>', df.shape, df.shape[0], df.shape[1])#样本形状(行数和列数)、样本数(行数,这里是36个省)、特征数(列数,这里是包括地名和11个指标)探索

print('\n>>>', df.index, df.index.tolist(), df.columns)#样本索引、索引转换成列表、列名探索

print('\n>>>', df['年份'].dtypes, '\n', df.dtypes)#某列类型、全部样本类型探索

print('\n>>>')

print(df.info())#样本基本情况探索,是上面方法的统一

(2)数量探索

print('--'*20, '\n【2】数量探索')

print('\n>>>', df['年份'].count(), '\n', df.count())#探索某列、全部样本非NA值的数量

print('\n>>>', df['年份'].values, '\n', df.values)# 探索某列的值,也可以探索全部样本的值

print('\n>>>', df['第一产业增加值(亿元)'].value_counts().head())# 探索某列中各元素值出现的次数(只能探索某列的),head代表看前5个

print('\n>>>', df['第一产业增加值(亿元)'].value_counts())# 探索某列中各元素值出现的次数(只能探索某列的)

print('\n>>>', df['国内生产总值(亿元)'].unique(), df.nunique())# 探索某列唯一值元素、每一列唯一值的数量

print('\n>>>', df.isnull().sum(), '\n', df.notnull().sum())# 探索每一列缺失值数量、不是缺失值数量

print('\n>>>', df['年份'].head(), '\n', df[['地区', '年份']].head())# 某列取值、多列取值

(3)相关性分析

print('--' *20, '\n【3】探索特征之间相关性')

print('\n>>>', df['年末总人口(万人)'].var(), df.var())# 探索某列、全部样本的方差

print('\n>>>', df['年末总人口(万人)'].std(), df.std())# 探索标准差

print('\n>>>', df.cov().iloc[:4, :4])# 探索变量间的协方差,iloc[:4, :4]代表只展示前4行前4列

print('\n>>>', df.corr().iloc[:4, :4])# 探索变量间的相关性

(4)汇总统计

print('--' *20, '\n【4】样本数据汇总统计')

print('\n>>>', df.sum())# 每一列求和

print('\n>>>', df['地区'].cumsum().head())# 某列逐行累加(可以全部样本每一列都累加)

print('\n>>>', df.max().head(), df.min().head())# 最大最小值

print('\n>>>', df['国内生产总值(亿元)'].idxmax(), '\n', df['国内生产总值(亿元)'].idxmin())# 返回 '国内生产总值' 列最大、最小值所对应的索引号

print('\n>>>', df.mean(), df.median())# 平均值、中位数

print('\n>>>', df.describe().T)# 汇总统计信息,是上面方法的统一,T是transverse行列转置

(5)数据抽样

有时候我们做研究分析或者数据量过大时,只希望抽取一部分数据做研究,因此要进行数据抽样处理

print('--' *20, '\n【5】数据抽样')

data = df.sample(n=5, replace=False)# 不放回随机抽样 5 个数据

print(data)

2. pandas中的应用函数apply

我们发现数据集中有浮点型数据,但是我们只需要整形数据,因此我们很有必要使用应用函数对原数据进行类型转换

apply(func[, args[, kwargs]]) 函数用于当函数参数已经存在于一个元组或字典中时,间接地调用函数。args是一个包含将要提供给函数的按位置传递的参数的元组。如果省略了args,任何参数都不会被传递,kwargs是一个包含关键字参数的字典。

apply()的返回值就是func()的返回值,apply()的元素参数是有序的,元素的顺序必须和func()形式参数的顺序一致

import numpyas np

def fun(x):

x =int(x)

return x

f =lambda x: x +'QQ'    #lamda定义匿名函数,结果类似于x=xQQ,即输入北京,输出北京QQ

data1 = df['国内生产总值(亿元)'].apply(fun)

data2 = df['地区'].apply(f)

data3 = df.iloc[:, :].apply(np.sum)#每一列求和

print(data1.head(), '\n', data2.head(), '\n',data3)

3. 合并数据

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,

          keys=None, levels=None, names=None, verify_integrity=False)

objs:合并的目标;axis:需要合并的轴,0是行,1是列;join:连接的方式,innner是交集,outer是并集;

可以增加key参数来识别数据源自于哪张表,keys=['x', 'y', 'z']表示将三个合并的数据集分别表示为xyz;

如果有join_axes的参数传入,可以指定根据哪个轴来对齐数据,如根据df1表对齐数据,就会保留指定的df1表的轴,然后将其它的表与之拼接;

如果两个表的index都没有实际含义,使用ignore_index参数,置true,合并的两个表就根据列字段对齐,然后合并,最后再重新整理一个新的index;

链接:https://blog.csdn.net/mr_hhh/article/details/79488445

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,

        left_index=False, right_index=False, sort=True,

        suffixes=('_x', '_y'), copy=True, indicator=False,

        validate=None)

链接:https://blog.csdn.net/brucewong0516/article/details/82707492

import pandasas pd

df1 = pd.read_csv("2015年国内主要城市年度数据.csv")

df2 = pd.read_csv("2016年国内主要城市年度数据.csv")

df3 = pd.read_csv("2017年国内主要城市年度数据.csv")

df_1 = pd.concat(objs=[df1, df2, df3], axis=0)# 合并数据,以行的维度合并

df_2 = pd.merge(left=df1, right=df2, on='年份', how='outer')# 以指定值合并,在本案例中不实用

df_1.sample(n=7, replace=False)# 随机不放回抽样 7 个数据

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容