python之pandas&&DataFrame(二)
简单操作
Python-层次聚类-Hierarchical clustering
- >>> data = pd.Series(np.random.randn(10),index=[['a','a','a','b','b','c','c','d','d','d'],[1,2,3,1,2,1,2,3,1,2]])
- >>> data
- a 1 -0.168871
- 2 0.828841
- 3 0.786215
- b 1 0.506081
- 2 -2.304898
- c 1 0.864875
- 2 0.183091
- d 3 -0.678791
- 1 -1.241735
- 2 0.778855
- dtype: float64
Hierarchical与DataFrame之间的转换
- >>> data.unstack()
- 1 2 3
- a -0.168871 0.828841 0.786215
- b 0.506081 -2.304898 NaN
- c 0.864875 0.183091 NaN
- d -1.241735 0.778855 -0.678791
- >>> type(data.unstack())
- <class 'pandas.core.frame.DataFrame'>
Merge,join,Concatenate
- >>> df2 = pd.DataFrame({'apts':[55000,60000],'cars':[15000,12000]},index=['hangzhou','najing'])
- >>> df1 = pd.DataFrame({'apts':[55000,60000],'cars':[20000,30000]},index=['shanghai','beijing'])
- >>> df3 = pd.DataFrame({'apts':[55000,60000],'cars':[15000,12000]},index=['guangzhou','chongqing'])
- >>> [df1,df2,df3]
- [ apts cars
- shanghai 55000 20000
- beijing 60000 30000, apts cars
- hangzhou 55000 15000
- najing 60000 12000, apts cars
- guangzhou 55000 15000
- chongqing 60000 12000]
- >>> pd.concat([df1,df2,df3])
- apts cars
- shanghai 55000 20000
- beijing 60000 30000
- hangzhou 55000 15000
- najing 60000 12000
- guangzhou 55000 15000
- chongqing 60000 12000
- frames = [df1,df2,df3]
- >>> result2 = pd.concat(frames,keys=['x','y','z'])
- >>> result2
- apts cars
- x shanghai 55000 20000
- beijing 60000 30000
- y hangzhou 55000 15000
- najing 60000 12000
- z guangzhou 55000 15000
- chongqing 60000 12000
进行拼接concat
- >>> df4 = pd.DataFrame({"salaries":[10000,30000,30000,20000,15000]},index=['suzhou','beijing','shanghai','guanghzou','tianjin'])
- >>> result3 = pd.concat([result,df4],axis=1)
- >>> result3
- apts cars salaries
- beijing 60000.0 30000.0 30000.0
- chongqing 60000.0 12000.0 NaN
- guanghzou NaN NaN 20000.0
- guangzhou 55000.0 15000.0 NaN
- hangzhou 55000.0 15000.0 NaN
- najing 60000.0 12000.0 NaN
- shanghai 55000.0 20000.0 30000.0
- suzhou NaN NaN 10000.0
- tianjin NaN NaN 15000.0
合并两个DataFrame,并且只是交集
- >>> result3 = pd.concat([result,df4],axis=1,join='inner')
- >>> result3
- apts cars salaries
- shanghai 55000 20000 30000
- beijing 60000 30000 30000
Series和DataFrame一起Concatenate
- >>> s1 = pd.Series([60,50],index=['shanghai','beijing'],name='meal')
- >>> s1
- shanghai 60
- beijing 50
- Name: meal, dtype: int64
- >>> type(s1)
- <class 'pandas.core.series.Series'>
- >>> df1
- apts cars
- shanghai 55000 20000
- beijing 60000 30000
- >>> type(df1)
- <class 'pandas.core.frame.DataFrame'>
- >>> pd.concat([df1,s1],axis=1)
- apts cars meal
- shanghai 55000 20000 60
- beijing 60000 30000 50
- >>>
Series可以使用append进行行添加也可以列添加,但是concat不可以
- >>> s2 = pd.Series([18000,12000],index=['apts','cars'],name='xiamen')
- >>> s2
- apts 18000
- cars 12000
- Name: xiamen, dtype: int64
- >>> df1.append(s2)
- apts cars
- shanghai 55000 20000
- beijing 60000 30000
- xiamen 18000 12000
- >>> pd.concat([df1,s2],axis=0)
- 0 apts cars
- shanghai NaN 55000.0 20000.0
- beijing NaN 60000.0 30000.0
- apts 18000.0 NaN NaN
- cars 12000.0 NaN NaN
- >>> pd.concat([df1,s2],axis=1)
- apts cars xiamen
- apts NaN NaN 18000.0
- beijing 60000.0 30000.0 NaN
- cars NaN NaN 12000.0
- shanghai 55000.0 20000.0 NaN
- >>>
merge合并
- >>> df1 = pd.DataFrame({"salaries":[10000,30000,30000,20000,15000],'cities':['suzhou','beijing','shanghai','guanghzou','tianjin']})
- >>> df4 = pd.DataFrame({'apts':[55000,60000],'cars':[15000,12000],'cities':['shanghai','beijing']})
- >>> result = pd.merge(df1,df4,on='cities') #on表示合并的列
>>> result- cities salaries apts cars
- 0 beijing 30000 60000 12000
- 1 shanghai 30000 55000 15000
- >>> result = pd.merge(df1,df4,on='cities',how='right')
- >>> result
- cities salaries apts cars
- 0 beijing 30000 60000 12000
- 1 shanghai 30000 55000 15000
- >>> result = pd.merge(df1,df4,on='cities',how='left')
- >>> result
- cities salaries apts cars
- 0 suzhou 10000 NaN NaN
- 1 beijing 30000 60000.0 12000.0
- 2 shanghai 30000 55000.0 15000.0
- 3 guanghzou 20000 NaN NaN
- 4 tianjin 15000 NaN NaN
python之pandas&&DataFrame(二)的更多相关文章
- Python:pandas(二)——pandas函数
Python:pandas(一) 这一章翻译总结自:pandas官方文档--General functions 空值:pd.NaT.np.nan //判断是否为空 if a is np.nan: .. ...
- Python数据分析--Pandas知识点(二)
本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) 下面将是在知识点一的基础上继续总结. 13. 简单计算 新建一个数据表 ...
- python之pandas&&DataFrame
1.Series Series是一个一维数组 pandas会默认从0开始作为Series的index >>> test = pd.Series(['num0','num1','nu ...
- Python中pandas dataframe删除一行或一列:drop函数
用法:DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False) 参数说明:labels 就是要删除的行列的 ...
- Python数据分析--Pandas知识点(三)
本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) Python数据分析--Pandas知识点(二) 下面将是在知识点一, ...
- 【338】Pandas.DataFrame
Ref: Pandas Tutorial: DataFrames in Python Ref: pandas.DataFrame Ref: Pandas:DataFrame对象的基础操作 Ref: C ...
- Python 学习 第十二篇:pandas
pandas是基于NumPy构建的模块,含有使数据分析更快更简单的操作工具和数据结构,最常用的数据结构是:序列Series和数据框DataFrame,Series类似于numpy中的一维数组,类似于关 ...
- Python之Pandas中Series、DataFrame
Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...
- Python常用库之二:Pandas
Pandas是用于数据操纵和分析,建立在Numpy之上的.Pandas为Python带来了两种新的数据结构:Pandas Series和Pandas DataFrame,借助这两种数据结构,我们能够轻 ...
随机推荐
- ZJOI 2017 二试 day1 4.26
day0,11:30熄灯,又因为在房间里太浪,空调开了28度,过了好久才成功降温,导致睡得不太好QaQ. 于是早上昏昏欲睡,也没怎么听懂(orz孙耀峰). 中午大家一致提议下午不去听课,回到房间浪了好 ...
- vector 和数组 之间的转化
1.数组转vector float arrHeight[] = { 1.68,1.72,1.83,2.05,2.35,1.78,2.1,1.96 }; vector<float> vec ...
- 链接错误 multiply defined (by misc_1.o and misc.o).
http://www.stmcu.org/module/forum/thread-286128-1-1.html *** Using Compiler 'V5.06 (build 20)', fold ...
- Topcoder SRM570 D1L3 CurvyonRails
几个样例: 5 5wCCwwwCC....w......www..wReturns: 0 3 3C.w....C.Returns: 1 21 20CC..CCCw.CwC..CC.w.CC.CCCwC ...
- Codeforces 97.B Superset
A set of points on a plane is called good, if for any two points at least one of the three condition ...
- hibernate、mybatis、spring data 的对比
转: 1.概念: Hibernate :Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库.着力 ...
- 高并发大容量NoSQL解决方案探索
大数据时代,企业对于DBA也提出更高的需求.同时,NoSQL作为近几年新崛起的一门技术,也受到越来越多的关注.本文将基于个推SRA孟显耀先生所负责的DBA工作,和大数据运维相关经验,分享两大方向内容: ...
- Android的静默安装
原文 Android的静默安装似乎是一个很有趣很诱人的东西,但是,用普通做法,如果手机没有root权限的话,似乎很难实现静默安装,因为Android并不提供显示的Intent调用,一般是通过以下方式安 ...
- [DeeplearningAI笔记]序列模型1.5-1.6不同类型的循环神经网络/语言模型与序列生成
5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.5不同类型的循环神经网络 上节中介绍的是 具有相同长度输入序列和输出序列的循环神经网络,但是对于很多应用\(T_{x}和 ...
- 理解PV操作和信号量
对于信号量,可以认为是一个仓库,有两个概念,容量和当前的货物个数. P操作从仓库拿货,如果仓库中没有货,线程一直等待,直到V操作,往仓库里添加了货物,为了避免P操作一直等待下去,会有一个超时时间. V ...