python数据分页pandas,Python数据分析[3] - Pandas包
Series
Series是一个一维的向量,每个值都会有对应标签,该标签我们称之为Index
Obj = Series([4, 5, -7, 8])
Obj
Out[5]:
0 4
1 5
2 -7
3 8
dtype: int64
Obj2 = Series([4, 5, -7, 8], index = ['a', 'b', 'c', 'd'])
Obj2
Out[7]:
a 4
b 5
c -7
d 8
dtype: int64
通过Index可以对Series进行查询以及修改
Obj2['a']
Out[12]: 4
Obj2['a'] = 0
Obj2
Out[14]:
a 0
b 5
c -7
d 8
dtype: int64
Numpy函数,以及其他类Numpy的向量计算函数,可以应用在Series中,与Numpy的ndarrays基本相同
Obj * 2
Out[16]:
0 8
1 10
2 -14
3 16
dtype: int64
python的dict数据可以直接转换为Series
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
obj3 = pd.Series(sdata)
obj3
Out[17]:
Ohio 35000
Texas 71000
Oregon 16000
Utah 5000
dtype: int64
DataFrame
DataFrame是我作为数据分析师,最为常用的一个数据类型。DataFrame代表了一个长方形的表,包含了任意的长度及宽度(可以理解为在Excel中的一个表)。DataFrame拥有Column Index和Row Index(行标与列标)。
最常见的创建DataFrame的方法为从一个包含了Numpy arrays的dict数据转换
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
'year': [2000, 2001, 2002, 2001, 2002, 2003],
'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
frame = pd.DataFrame(data)
frame
Out[19]:
state year pop
0 Ohio 2000 1.5
1 Ohio 2001 1.7
2 Ohio 2002 3.6
3 Nevada 2001 2.4
4 Nevada 2002 2.9
5 Nevada 2003 3.2
在创建通过表头的名字,我们可以更换列的顺序
frame = pd.DataFrame(data, columns = ['year', 'state', 'pop'])
frame
Out[21]:
year state pop
0 2000 Ohio 1.5
1 2001 Ohio 1.7
2 2002 Ohio 3.6
3 2001 Nevada 2.4
4 2002 Nevada 2.9
5 2003 Nevada 3.2
创建完成后,可以选择使用列名查询某列
frame['pop']
Out[22]:
0 1.5
1 1.7
2 3.6
3 2.4
4 2.9
5 3.2
loc方法可以查询某行
frame.loc[1]
Out[23]:
year 2001
state Ohio
pop 1.7
Name: 1, dtype: object
直接指定好列名以及对应的行,便可以很便利的向pandas添加数据,空的数据会在pandas中展示为NaN
frame['city'] = Series(['Kent', 'Las Vegas'], index = [0, 3])
frame
Out[25]:
year state pop city
0 2000 Ohio 1.5 Kent
1 2001 Ohio 1.7 NaN
2 2002 Ohio 3.6 NaN
3 2001 Nevada 2.4 Las Vegas
4 2002 Nevada 2.9 NaN
5 2003 Nevada 3.2 NaN
Pandas方法
使用loc和iloc可以对一个dataframe执行分页操作
loc为选取该名字的行与列,iloc为选取第x行和第y列
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
'year': [2000, 2001, 2002, 2001, 2002, 2003],
'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
frame = pd.DataFrame(data, index = ['one', 'two', 'three', 'four', 'five', 'six'])
frame
Out[34]:
state year pop
one Ohio 2000 1.5
two Ohio 2001 1.7
three Ohio 2002 3.6
four Nevada 2001 2.4
five Nevada 2002 2.9
six Nevada 2003 3.2
frame.loc[['two', 'three'], ['state', 'year']]
Out[37]:
state year
two Ohio 2001
three Ohio 2002
frame.iloc[[2, 3], [0, 1]]
Out[38]:
state year
three Ohio 2002
four Nevada 2001
DataFrame 计算与缺失值
DataFrame基础计算方法包括了加、减、乘、除、次方、整除等
计算方法
在计算方法中,fill_value值可以控制缺失值的替换
df1 = DataFrame(np.arange(12.).reshape(3, 4), columns = list('abcd'))
df2 = DataFrame(np.arange(15.).reshape(3, 5), columns = list('abecd'))
df1
Out[59]:
a b c d
0 0.0 1.0 2.0 3.0
1 4.0 5.0 6.0 7.0
2 8.0 9.0 10.0 11.0
df2
Out[60]:
a b e c d
0 0.0 1.0 2.0 3.0 4.0
1 5.0 6.0 7.0 8.0 9.0
2 10.0 11.0 12.0 13.0 14.0
df1 + df2
Out[61]:
a b c d e
0 0.0 2.0 5.0 7.0 NaN
1 9.0 11.0 14.0 16.0 NaN
2 18.0 20.0 23.0 25.0 NaN
df1.add(df2, fill_value = 0)
Out[62]:
a b c d e
0 0.0 2.0 5.0 7.0 2.0
1 9.0 11.0 14.0 16.0 7.0
2 18.0 20.0 23.0 25.0 12.0
除此之外reindex可以调整一个dataframe的shape,例如df1可以添加一行与df2保持一致
df1.reindex(columns = df2.columns, fill_value = 0)
Out[63]:
a b e c d
0 0.0 1.0 0 2.0 3.0
1 4.0 5.0 0 6.0 7.0
2 8.0 9.0 0 10.0 11.0
函数应用以及mapping
NumPy的ufuncs(向量化函数)是可以在DataFrame中应用的
例如我们定义一个函数,求该行的范围(最大值与最小值的绝对差)
frame
Out[152]:
b d e
Utah 0.0 1.0 2.0
Ohio 3.0 4.0 5.0
Texas 6.0 7.0 8.0
Oregon 9.0 10.0 11.0
get_range = lambda x: x.max() - x.min()
frame.apply(get_range)
Out[154]:
b 9.0
d 9.0
e 9.0
dtype: float64
frame.apply(get_range, axis = 'columns')
Out[158]:
Utah 2.0
Ohio 2.0
Texas 2.0
Oregon 2.0
dtype: float64
创建描述性统计函数
data = pd.DataFrame(np.random.randn(1000, 4))
data
Out[296]:
a b c d
0 0.660991 1.166362 -0.282237 -0.061292
1 -0.815670 0.220678 -0.072469 -0.343580
2 -1.431911 0.824215 -0.915729 -0.659971
3 0.696466 -0.556472 0.129206 0.739566
4 -1.475857 -0.043149 -1.839006 0.099850
.. ... ... ... ...
995 0.135430 0.923296 -0.819932 -0.876656
996 1.767997 1.747973 -0.609283 -0.608092
997 -0.239235 0.376930 0.154019 0.660505
998 0.202736 -0.214131 0.926638 -0.810888
999 -0.144855 -0.463251 0.984850 1.368218
[1000 rows x 4 columns]
def statistical_describe(DataFrame_input) -> DataFrame:
return DataFrame_input.apply(lambda x: pd.Series([len(x), sum(x)/len(x),
(sum((x - sum(x)/len(x))**2)/len(x))**.5,
x.min(), x.quantile(.25), x.quantile(.5), x.quantile(.75), x.max()],
index = ['count', 'mean', 'std', 'min', '.25', '.50', '.75', 'max']))
statistical_describe(data)
Out[297]:
a b c d
count 1000.000000 1000.000000 1000.000000 1000.000000
mean 0.035889 0.031281 -0.005168 -0.063525
std 1.035586 0.978126 0.975315 0.994380
min -3.068035 -3.513137 -3.373269 -3.251473
.25 -0.643046 -0.594430 -0.664430 -0.749127
.50 0.006002 0.051688 -0.010682 -0.087670
.75 0.714898 0.715789 0.663933 0.605968
max 3.790818 3.867886 2.673977 3.488003
python数据分页pandas,Python数据分析[3] - Pandas包相关推荐
- python数据建模工具_python数据分析工具——Pandas、StatsModels、Scikit-Learn
Pandas Pandas是 Python下最强大的数据分析和探索工具.它包含高级的数据结构和精巧的工具,使得在 Python中处理数据非常快速和简单. Pandas构建在 Numpy之上,它使得以 ...
- python txt文件读写 pandas_Python数据分析之Pandas读写外部数据文件!
阅读目录 1 引言 2 文本文件(txt.csv) 2.1 读取数据 2.2 写入数据 3 excel文件 3.1 读取数据 3.2 写入数据 4 mysql数据库 5 mongodb数据库 1 引言 ...
- python数据生成可视化_Python数据分析:手把手教你用Pandas生成可视化图表
大家都知道,Matplotlib 是众多 Python 可视化包的鼻祖,也是Python最常用的标准可视化库,其功能非常强大,同时也非常复杂,想要搞明白并非易事.但自从Python进入3.0时代以后, ...
- python 面板数据分析_科学网—Python中的结构化数据分析利器-Pandas简介 - 郑俊娟的博文...
此文转载于XXXXXX处... Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数 ...
- 经济学中的定量分析python_(转)Python中的结构化数据分析利器-Pandas简介
Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发tea ...
- 【Python数据科学】第三章 Pandas 数据处理(下半章)
7.合并数据集:合并与连接 Pandas 的基本特性之一就是高性能的内存式数据连接(join)和合并(merge)操作.如果你有使用数据库的经验,那么对这类操作一定很熟悉.Pandas 的主接口是pd ...
- python数据科学-单变量数据分析
总第85篇 01|背景: 我们在做机器学习之前,需要自己先对数据进行深入的了解(这些数据是什么类型,总共有多少数据,有没有缺失值,均值是多少之类的),只有自己对数据足够了解了,才能够更好地利用机器学习 ...
- python数据分享人力资源_Python数据分析帮你清晰的了解整理员工们的工作效率和整体满意度...
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 项目背景 2018年,被称为互联网的寒冬之年.无论大小公司,纷纷走上了裁员 ...
- pandas python2_Python数据分析之pandas学习(二)
有关pandas模块的学习与应用主要介绍以下8个部分: 1.数据结构简介:DataFrame和Series 2.数据索引index 3.利用pandas查询数据 4.利用pandas的DataFram ...
- 【Pandas】数据分析工具Pandas的基本操作和可视化工具Matplotlib
1.Pandas简介 pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的 ...
最新文章
- python3.6.2怎样安装,python 3.6.2 安装配置方法图文教程
- 为什么对高斯分布的方差的极大似然估计是有偏的?
- js鼠标略过自动选择当前行
- Pytorch实现基本循环神经网络RNN (3)
- NetBeans可用性提示
- asp 调用java文件上传_用asp实现文件浏览、上传、下载的程序
- Java解决空引用_Java 匠人手法 - 优雅的处理空值
- Delphi利用Windows GDI实现文字倾斜
- pssh批量远程管理
- 消除类游戏(js版)
- Python还能走多远?
- 第十届蓝桥杯B组C/C++省赛编程题题目及答案解析
- 为什么都不想去中科创达_那些过年不想回家的人,都去了哪?
- 对比学习(Contrastive Learning) (1)
- 书翻页效果php,Css实现翻书效果
- 鸿蒙轻量设备侧Camera应用中的Surface使用
- AD的单端输入和查分输入
- 腾讯要建超级大脑,用三张网实现AI in All万物互联
- java编程题身高排队_身高排队算法-(较优解):12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?...
- 杭电计算机学院毕业要求,杭州电子科技大学关于攻读博士学位研究生培养工作的规定...
热门文章
- Python的变量与递归函数1-全局变量与局部变量
- tensorflow识别猫与狗
- 专题·深度优先搜索(DFS)【including 2N皇后,等边三角形,中国邮递员问题
- java弹球游戏代码_疯狂java实战演义 弹球游戏代码
- 图论算法之最短路径(Dijkstra、Floyd、Bellman-ford和SPFA)
- WiFi管理帧(一)(信道切换)
- 关于函数递归和函数迭代,我的理解
- 【音视频第7天】mediasoup拥塞控制【未完待续】
- flink实时数仓(三):cannel
- python实现自动点赞——实践_2022-01-02