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,借助这两种数据结构,我们能够轻 ...
随机推荐
- 【BZOJ2727】双十字(动态规划,树状数组)
[BZOJ2727]双十字(动态规划,树状数组) 题面 BZOJ 洛谷 题解 我们去年暑假的时候考试考过. 我当时写了个大暴力混了\(70\)分.... 大暴力是这么写的: 预处理每个位置向左右/上/ ...
- linux swap交换分区配置
参考 http://commandos.blog.51cto.com/154976/115288/
- 【hash】【P5079】P5079 Tweetuzki 爱伊图
Description Input 第一行两个正整数 \(r~,~c\),表示矩阵的行数和列数. 接下来 \(r\) 行,每行输入 \(c\) 个字符,用空格隔开,保证只含有 . 和 # 两种字符.输 ...
- Codeforces 833B The Bakery dp线段树
B. The Bakery time limit per test 2.5 seconds memory limit per test 256 megabytes input standard inp ...
- 源码包安装 NGINX时候遇到的错误以及解决办法!
最近跟一个公司合作,要把我们的应用安装在他们的服务器上,不过问题来了.他们为了他们自己服务器安全,不给我们root权限,只给了我们普通用户权限,所有的程序都要装在规定的路径里,限制可不少.没办法装吧~ ...
- NAIPC2018-K-Zoning Houses
题目描述 Given a registry of all houses in your state or province, you would like to know the minimum si ...
- 字符串:SAM
HDU4622:区间查询不同子串个数 用后缀自动机预处理出所有区间的不同子串个数 建立n次后缀自动机 #include <stdio.h> #include <string.h> ...
- HDU 2298 三分
斜抛从(0,0)到(x,y),问其角度. 首先观察下就知道抛物线上横坐标为x的点与给定的点的距离与角度关系并不是线性的,当角度大于一定值时可能会时距离单调递减,所以先三分求个角度范围,保证其点一定在抛 ...
- H5多媒体
Video <video width="500px" controls="controls"> <source src="test. ...
- ① 设计模式的艺术-07.适配器(Adapter)模式
什么是适配器模式? 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 模式中的角色 目标接口(Target):客户所期待的接口 ...