发布于2019-08-22 17:50 阅读(397) 评论(0) 点赞(23) 收藏(2)
Pandas基于Numpy构建
Pandas最初被作为金融数据分析而开发出来,因而Pandas为时间序列分析提供了很好的支持
安装:cmd窗口中输入
pip install pandas
使用时,要先导入
import pandas as pd
1-1.Series----序列
- from pandas import Series
-
- # 1-创建Series
- obj = Series([4, 7, -5, 3])
- print(obj)
-
- 输出结果:(左边的是index,右边的是values)
- 0 4
- 1 7
- 2 -5
- 3 3
- dtype: int64
-
- # 2-获取index
- print(obj.index)
- 输出结果:
- RangeIndex(start=0, stop=4, step=1)
-
- # 3-获取values
- print(obj.values)
- 输出结果:
- [ 4 7 -5 3]
-
-
- # 4-可以指定索引---(例如将索引指定为日期)
- obj = Series([4, 7, -5, 3], index=['3/1', '3/2', '3/3', '3/4'])
- print(obj)
- 输出结果:
- 3/1 4
- 3/2 7
- 3/3 -5
- 3/4 3
- dtype: int64
-
- # 5-获取指定索引的值
- print(obj['3/3'])
-
- # 6-获取指定条件的值(如:获得大于0的值)
- print(obj[obj>0])
-
- # 7-in判断是否存在
- print('3/3' in obj)----True
- print('3/6' in obj)----False
-
- # 8-通过字典创建Series
- dict1 = {'3/1': 4, '3/2': 7, '3/3': -5, '3/4': 3}
- print(dict1)
- r = Series(dict1)
- print(r)
1-2.DataFrame---数据框
- from pandas import DataFrame
-
- # 1-创建数据框(直接传入一个由等长列表或numpy数组组成的字典)
- # 先定义2个列表
- position = ['产品经理', '数据分析师', 'UI', '产品经理', '开发']
- company = ['百度', '腾讯', '阿里', '网易', '京东']
- df = DataFrame([position, company]) # 将两组数据合成一个表格
- print(df)
-
- 输出结果:
- 0 1 2 3 4
- 0 产品经理 数据分析师 UI 产品经理 开发
- 1 百度 腾讯 阿里 网易 京东
-
- # 2-将上述列子的第一行作为第一列
- df = DataFrame([position, company]).T #---加.T
- print(df)
- 输出结果:
- 0 1
- 0 产品经理 百度
- 1 数据分析师 腾讯
- 2 UI 阿里
- 3 产品经理 网易
- 4 开发 京东
-
- # 3-columns指定列名
- df.columns = ['职位名', '公司名']
- print(df)
- 输出结果:
- 职位名 公司名
- 0 产品经理 百度
- 1 数据分析师 腾讯
- 2 UI 阿里
- 3 产品经理 网易
- 4 开发 京东
-
- # 4-index指定行名
- df.index = ['a', 'b', 'c', 'd', 'e']
- print(df)
- 输出结果:
- 职位名 公司名
- a 产品经理 百度
- b 数据分析师 腾讯
- c UI 阿里
- d 产品经理 网易
- e 开发 京东
-
- # 5-1-重置index
- print(df.reset_index(drop=True))
-
- # 5-2-重置index,并保存之前的索引
- print(df.reset_index())
-
- # 6-显示前面n行数据
- print(df.head(n))
-
- # 7-显示后面n行数据
- print(df.tail(n))
-
- # 8-获取某一列的值
- # 8-1-方式1
- r = df["职位名"]
- print(r)
-
- # 8-2-方式2
- r = df.职位名
- print(r)
-
- # 9-获取某一行的值
- # 9-1-方式1
- r = df.loc["c"]
- print(r)
- # 方式2
- r = df.iloc[3]
- print(r)
- import numpy as np
- from pandas import Series
- from pandas import DataFrame
-
- # 创建一个数据框
- # 先创建一个4x4的数组
- arr = np.arange(16).reshape((4, 4))
- # 1-指定行名和列名
- df = DataFrame(data=arr, index=['a', 'b', 'c', 'd'], columns=['one', 'two', 'three', 'four'])
- print(df)
- 输出结果:
- one two three four
- a 0 1 2 3
- b 4 5 6 7
- c 8 9 10 11
- d 12 13 14 15
-
- # 2-删除某行
- r = df.drop('b')
- print(r)
- 输出结果:
- one two three four
- a 0 1 2 3
- c 8 9 10 11
- d 12 13 14 15
-
- # 3-删除某列
- r = df.drop('two', axis=1) # axis=1表示按列执行
- print(r)
- 输出结果:
- one three four
- a 0 2 3
- b 4 6 7
- c 8 10 11
- d 12 14 15
-
- # 4-查找x列,值为y的记录(将显示一行的值)
- r = df[df["four"] == 7] # four列,值为7
- print(r)
- 输出结果:
- one two three four
- b 4 5 6 7
-
- # 5-唯一值 unique
- # 先创建一个序列
- obj = Series([1, 2, 2, 3, 3, 4, 5, 5, 5])
- print(obj)
- r = obj.unique()
- print(r)
- 输出结果:
- [1 2 3 4 5]
-
- # 6-频率统计,value_counts(),频率从高到低排序
- r = obj.value_counts()
- print(r)
- 输出结果:
- 5 3
- 3 2
- 2 2
- 4 1
- 1 1
- dtype: int64
-
- # 7-频率统计,value_counts(),不排序
- r = obj.value_counts(sort=False)
- print(r)
- 输出结果:
- 1 1
- 2 2
- 3 2
- 4 1
- 5 3
- dtype: int64
-
3.Pandas中常用的数学和统计函数
- 创建一个数据框
- arr = np.arange(16).reshape((4, 4))
- df = DataFrame(data=arr, index=['a', 'b', 'c', 'd'], columns=['one', 'two', 'three', 'four'])
- print(df)
- 输出结果:
- one two three four
- a 0 1 2 3
- b 4 5 6 7
- c 8 9 10 11
- d 12 13 14 15
-
- # 1-describe,描述性统计分析
- r = df.describe()
- print(r)
- 输出结果:
- one two three four
- count 4.000000 4.000000 4.000000 4.000000
- mean 6.000000 7.000000 8.000000 9.000000
- std 5.163978 5.163978 5.163978 5.163978
- min 0.000000 1.000000 2.000000 3.000000
- 25% 3.000000 4.000000 5.000000 6.000000
- 50% 6.000000 7.000000 8.000000 9.000000
- 75% 9.000000 10.000000 11.000000 12.000000
- max 12.000000 13.000000 14.000000 15.000000
-
- # 2-求和--对每一列
- r = df.sum()
- print(r)
- 输出结果:
- one 24
- two 28
- three 32
- four 36
- dtype: int64
-
- # 3-均值mean()--对每一列
- r = df.mean()
- print(r)
- 输出结果:
- one 6.0
- two 7.0
- three 8.0
- four 9.0
- dtype: float64
-
- # 4-累计求和cumsum--对行
- r = df.cumsum()
- print(r)
- 输出结果:
- one two three four
- a 0 1 2 3
- b 4 6 8 10
- c 12 15 18 21
- d 24 28 32 36
-
- # 5-求每一列的最大值
- r = df.max()
- print(r)
- 输出结果:
- one 12
- two 13
- three 14
- four 15
- dtype: int32
-
- # 创建一个数据框
- position = ['产品经理', '数据分析师', 'UI', '产品经理', '开发']
- company = ['百度', '腾讯', '阿里', '网易', '京东']
- df = DataFrame([position, company]).T
- print(df)
-
- # 6-非数值型数据的描述性统计分析
- r = df.describe()
- print(r)
- 输出结果:
- 0 1
- count 5 5
- unique 4 5
- top 产品经理 腾讯
- freq 2 1
作者:熊猫烧香
链接:https://www.pythonheidong.com/blog/article/53312/8c72b1e02f5fe3d5310e/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!
python经典书籍pdf下载(56)
python shell(0)
文件(0)
运行python脚本(0)
python(2)
人工智能(0)
python基础(0)
python高级(0)
IT编程电子书大合集(1)
linux(0)
bootstrap(0)
GUI编程tkinder(0)
python基础知识点(0)
ios(0)
java-2(0)