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,借助这两种数据结构,我们能够轻 ...
随机推荐
- BZOJ3110 K大数查询 【线段树 + 整体二分 或 树套树(非正解)】
Description 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c 如果是2 a b c形式,表示询问从第a个位置到第b个位 ...
- java8系列
参见地址:https://segmentfault.com/a/1190000012211339
- 嘘,如何激活更新的win10
win10更新了,所以很坑的是以前的密钥又不管用了,系统和office都要重新激活,然而微软的更新就是很有恶意的,总之成功率堪忧. 还好看到了万能的网友的办法. slmgr.vbs /upk slmg ...
- 「Linux+Django」uwsgi服务启动(start)停止(stop)重新装载(reload)
转自:http://blog.51cto.com/12482328/2087535?cid=702003 1. 添加uwsgi相关文件 在之前的文章跟讲到过centos中搭建nginx+uwsgi+f ...
- js知识点乱炖
修改属性 元素.style.样式=值 document.getElementById('box').style.width='200px'; 属性操作方式 1.. 的 元素.属性名如果属性是单 ...
- OpenCV---分水岭算法
推文: OpenCV学习(7) 分水岭算法(1)(原理简介简单明了) OpenCV-Python教程:31.分水岭算法对图像进行分割(步骤讲解不错) 使用分水岭算法进行图像分割 (一)获取灰度图像,二 ...
- NOIP模拟赛9
T1U3348 A2-回文数 https://www.luogu.org/problem/show?pid=U3348 考场上钻了牛角尖了,然后0分 #include<cstdio> #i ...
- NOIP模拟7
期望得分:100+100+20=220 实际得分:100+95+20=215 T1 洛谷 P1306 斐波那契公约数 #include<cstdio> #include<cstrin ...
- 字符串:AC自动机
给出一个字典和一个模式串,问模式串中出现几个字典中的单词 最后一行是大串,之前输入的是小串 #include<iostream> #include<cstdio> using ...
- JAVA多线程提高三:线程范围内共享变量&ThreadLocal
今天我们学习的是如何在线程自己的范围内达到变量数据的共享,而各个线程之间又是互相独立开来,各自维护的,即我们说的ThreadLocal的作用. 一.概念 可以将每个线程用到的数据与对应的线程号存放到一 ...