简单操作

Python-层次聚类-Hierarchical clustering

  1. >>> 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]])
  2. >>> data
  3. a 1 -0.168871
  4. 2 0.828841
  5. 3 0.786215
  6. b 1 0.506081
  7. 2 -2.304898
  8. c 1 0.864875
  9. 2 0.183091
  10. d 3 -0.678791
  11. 1 -1.241735
  12. 2 0.778855
  13. dtype: float64

Hierarchical与DataFrame之间的转换

  1. >>> data.unstack()
  2. 1 2 3
  3. a -0.168871 0.828841 0.786215
  4. b 0.506081 -2.304898 NaN
  5. c 0.864875 0.183091 NaN
  6. d -1.241735 0.778855 -0.678791
  7. >>> type(data.unstack())
  8. <class 'pandas.core.frame.DataFrame'>

Merge,join,Concatenate

  1. >>> df2 = pd.DataFrame({'apts':[55000,60000],'cars':[15000,12000]},index=['hangzhou','najing'])
  2. >>> df1 = pd.DataFrame({'apts':[55000,60000],'cars':[20000,30000]},index=['shanghai','beijing'])
  3. >>> df3 = pd.DataFrame({'apts':[55000,60000],'cars':[15000,12000]},index=['guangzhou','chongqing'])
  4. >>> [df1,df2,df3]
  5. [ apts cars
  6. shanghai 55000 20000
  7. beijing 60000 30000, apts cars
  8. hangzhou 55000 15000
  9. najing 60000 12000, apts cars
  10. guangzhou 55000 15000
  11. chongqing 60000 12000]
  12. >>> pd.concat([df1,df2,df3])
  13. apts cars
  14. shanghai 55000 20000
  15. beijing 60000 30000
  16. hangzhou 55000 15000
  17. najing 60000 12000
  18. guangzhou 55000 15000
  19. chongqing 60000 12000
  20. frames = [df1,df2,df3]
  21. >>> result2 = pd.concat(frames,keys=['x','y','z'])
  22. >>> result2
  23. apts cars
  24. x shanghai 55000 20000
  25. beijing 60000 30000
  26. y hangzhou 55000 15000
  27. najing 60000 12000
  28. z guangzhou 55000 15000
  29. chongqing 60000 12000

进行拼接concat

  1. >>> df4 = pd.DataFrame({"salaries":[10000,30000,30000,20000,15000]},index=['suzhou','beijing','shanghai','guanghzou','tianjin'])
  2. >>> result3 = pd.concat([result,df4],axis=1)
  3. >>> result3
  4. apts cars salaries
  5. beijing 60000.0 30000.0 30000.0
  6. chongqing 60000.0 12000.0 NaN
  7. guanghzou NaN NaN 20000.0
  8. guangzhou 55000.0 15000.0 NaN
  9. hangzhou 55000.0 15000.0 NaN
  10. najing 60000.0 12000.0 NaN
  11. shanghai 55000.0 20000.0 30000.0
  12. suzhou NaN NaN 10000.0
  13. tianjin NaN NaN 15000.0

合并两个DataFrame,并且只是交集

  1. >>> result3 = pd.concat([result,df4],axis=1,join='inner')
  2. >>> result3
  3. apts cars salaries
  4. shanghai 55000 20000 30000
  5. beijing 60000 30000 30000

Series和DataFrame一起Concatenate

  1. >>> s1 = pd.Series([60,50],index=['shanghai','beijing'],name='meal')
  2. >>> s1
  3. shanghai 60
  4. beijing 50
  5. Name: meal, dtype: int64
  6. >>> type(s1)
  7. <class 'pandas.core.series.Series'>
  8. >>> df1
  9. apts cars
  10. shanghai 55000 20000
  11. beijing 60000 30000
  12. >>> type(df1)
  13. <class 'pandas.core.frame.DataFrame'>
  14. >>> pd.concat([df1,s1],axis=1)
  15. apts cars meal
  16. shanghai 55000 20000 60
  17. beijing 60000 30000 50
  18. >>>

Series可以使用append进行行添加也可以列添加,但是concat不可以

  1. >>> s2 = pd.Series([18000,12000],index=['apts','cars'],name='xiamen')
  2. >>> s2
  3. apts 18000
  4. cars 12000
  5. Name: xiamen, dtype: int64
  6. >>> df1.append(s2)
  7. apts cars
  8. shanghai 55000 20000
  9. beijing 60000 30000
  10. xiamen 18000 12000
  11. >>> pd.concat([df1,s2],axis=0)
  12. 0 apts cars
  13. shanghai NaN 55000.0 20000.0
  14. beijing NaN 60000.0 30000.0
  15. apts 18000.0 NaN NaN
  16. cars 12000.0 NaN NaN
  17. >>> pd.concat([df1,s2],axis=1)
  18. apts cars xiamen
  19. apts NaN NaN 18000.0
  20. beijing 60000.0 30000.0 NaN
  21. cars NaN NaN 12000.0
  22. shanghai 55000.0 20000.0 NaN
  23. >>>

merge合并

  1. >>> df1 = pd.DataFrame({"salaries":[10000,30000,30000,20000,15000],'cities':['suzhou','beijing','shanghai','guanghzou','tianjin']})
  2. >>> df4 = pd.DataFrame({'apts':[55000,60000],'cars':[15000,12000],'cities':['shanghai','beijing']})
  3. >>> result = pd.merge(df1,df4,on='cities') #on表示合并的列
    >>> result
  4. cities salaries apts cars
  5. 0 beijing 30000 60000 12000
  6. 1 shanghai 30000 55000 15000
  1. >>> result = pd.merge(df1,df4,on='cities',how='right')
  2. >>> result
  3. cities salaries apts cars
  4. 0 beijing 30000 60000 12000
  5. 1 shanghai 30000 55000 15000
  6. >>> result = pd.merge(df1,df4,on='cities',how='left')
  7. >>> result
  8. cities salaries apts cars
  9. 0 suzhou 10000 NaN NaN
  10. 1 beijing 30000 60000.0 12000.0
  11. 2 shanghai 30000 55000.0 15000.0
  12. 3 guanghzou 20000 NaN NaN
  13. 4 tianjin 15000 NaN NaN

python之pandas&&DataFrame(二)的更多相关文章

  1. Python:pandas(二)——pandas函数

    Python:pandas(一) 这一章翻译总结自:pandas官方文档--General functions 空值:pd.NaT.np.nan //判断是否为空 if a is np.nan: .. ...

  2. Python数据分析--Pandas知识点(二)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) 下面将是在知识点一的基础上继续总结. 13. 简单计算 新建一个数据表 ...

  3. python之pandas&&DataFrame

    1.Series  Series是一个一维数组 pandas会默认从0开始作为Series的index >>> test = pd.Series(['num0','num1','nu ...

  4. Python中pandas dataframe删除一行或一列:drop函数

    用法:DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False) 参数说明:labels 就是要删除的行列的 ...

  5. Python数据分析--Pandas知识点(三)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) Python数据分析--Pandas知识点(二) 下面将是在知识点一, ...

  6. 【338】Pandas.DataFrame

    Ref: Pandas Tutorial: DataFrames in Python Ref: pandas.DataFrame Ref: Pandas:DataFrame对象的基础操作 Ref: C ...

  7. Python 学习 第十二篇:pandas

    pandas是基于NumPy构建的模块,含有使数据分析更快更简单的操作工具和数据结构,最常用的数据结构是:序列Series和数据框DataFrame,Series类似于numpy中的一维数组,类似于关 ...

  8. Python之Pandas中Series、DataFrame

    Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...

  9. Python常用库之二:Pandas

    Pandas是用于数据操纵和分析,建立在Numpy之上的.Pandas为Python带来了两种新的数据结构:Pandas Series和Pandas DataFrame,借助这两种数据结构,我们能够轻 ...

随机推荐

  1. ZJOI 2017 二试 day1 4.26

    day0,11:30熄灯,又因为在房间里太浪,空调开了28度,过了好久才成功降温,导致睡得不太好QaQ. 于是早上昏昏欲睡,也没怎么听懂(orz孙耀峰). 中午大家一致提议下午不去听课,回到房间浪了好 ...

  2. vector 和数组 之间的转化

    1.数组转vector float arrHeight[] = { 1.68,1.72,1.83,2.05,2.35,1.78,2.1,1.96 };  vector<float> vec ...

  3. 链接错误 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 ...

  4. Topcoder SRM570 D1L3 CurvyonRails

    几个样例: 5 5wCCwwwCC....w......www..wReturns: 0 3 3C.w....C.Returns: 1 21 20CC..CCCw.CwC..CC.w.CC.CCCwC ...

  5. 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 ...

  6. hibernate、mybatis、spring data 的对比

    转: 1.概念: Hibernate :Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库.着力 ...

  7. 高并发大容量NoSQL解决方案探索

    大数据时代,企业对于DBA也提出更高的需求.同时,NoSQL作为近几年新崛起的一门技术,也受到越来越多的关注.本文将基于个推SRA孟显耀先生所负责的DBA工作,和大数据运维相关经验,分享两大方向内容: ...

  8. Android的静默安装

    原文 Android的静默安装似乎是一个很有趣很诱人的东西,但是,用普通做法,如果手机没有root权限的话,似乎很难实现静默安装,因为Android并不提供显示的Intent调用,一般是通过以下方式安 ...

  9. [DeeplearningAI笔记]序列模型1.5-1.6不同类型的循环神经网络/语言模型与序列生成

    5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.5不同类型的循环神经网络 上节中介绍的是 具有相同长度输入序列和输出序列的循环神经网络,但是对于很多应用\(T_{x}和 ...

  10. 理解PV操作和信号量

    对于信号量,可以认为是一个仓库,有两个概念,容量和当前的货物个数. P操作从仓库拿货,如果仓库中没有货,线程一直等待,直到V操作,往仓库里添加了货物,为了避免P操作一直等待下去,会有一个超时时间. V ...