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,借助这两种数据结构,我们能够轻 ...
随机推荐
- 【BZOJ4889】不勤劳的图书管理员(树套树)
[BZOJ4889]不勤劳的图书管理员(树套树) 题面 又是权限题,烦死了 洛谷真好 题解 分开考虑每一次交换产生的贡献. 假设交换\((x,y)\) 检查\(x\)与\(y\)对于区间\([x+1, ...
- mysql数据库----python操作mysql ------pymysql和SQLAchemy
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy 一.pymysql pymsql是Python中操作MySQL的模块,其使用方法和MySQ ...
- 【单调栈】【CF5E】 Bindian Signalizing
传送门 Description 给你一个环,环上有一些点,点有点权.定义环上两点能相互看见当且仅当两点间存在一个弧使得弧上不存在一个点的点权大于着两个点.求一共有多少个点能互相看到 Input 第一行 ...
- 【计算机视觉】SIFT中LoG和DoG比较
<SIFT原理与源码分析>系列文章索引:http://www.cnblogs.com/tianyalu/p/5467813.html 在实际计算时,三种方法计算的金字塔组数noctaves ...
- linux 查看登录日志
原文:http://www.cnblogs.com/wangkangluo1/archive/2011/09/23/2185976.html linux查看日志: # cd /var/log # le ...
- Oracle用imp导入dmp文件记录一下
---------------------------------------------------------------------------------------------------- ...
- 深入浅出CSS(二):关于雪碧图、background-position与steps函数的三角恋情
[测试代码] HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- UVA 818 Cutting Chains
https://vjudge.net/problem/UVA-818 题意: 有n个圆环,其中有一些已经扣在了一起.现在需要打开尽量少的圆环,使得所有圆环可以组成一条链 n<=15 因为n< ...
- NOIP 2014 提高组 Day2
期望得分:100+60+30=190 实际得分:70+60+30=160 https://www.luogu.org/problem/lists?name=&orderitem=pid& ...
- JVM学习十:JVM之垃圾收集器及GC参数
接近两个月左右没有写博客,主要是因为小孩过来后,回家比较忙,现在小孩端午送回家了,开始继续之前的JVM学习之路,前面学习了GC的算法和种类,那么本章则是基于算法来产生实际的用途,即垃圾收集器. 一.堆 ...