python之pandas&&DataFrame
1.Series Series是一个一维数组
pandas会默认从0开始作为Series的index
>>> test = pd.Series(['num0','num1','num2','num3'])
>>> test
0 num0
1 num1
2 num2
3 num3
dtype: object
也可以自己指定index
>>> test = pd.Series(['num0','num1','num2','num3'],index=['A','B','C','D'])
>>> test
A num0
B num1
C num2
D num3
dtype: object
Series还可以用dictionary来构造一个Series
>>> cities = {'beijing':55000,'shanghai':60000,'shenzhen':20000,'guangzhou':25000,'suzhou':None}
>>> test = pd.Series(cities)
>>> test
beijing 55000.0
guangzhou 25000.0
shanghai 60000.0
shenzhen 20000.0
suzhou NaN
dtype: float64
>>> print type(test)
<class 'pandas.core.series.Series'>
>>> test['beijing']
55000.0
>>> test[['beijing','shanghai','shenzhen']]
beijing 55000.0
shanghai 60000.0
shenzhen 20000.0
dtype: float64
2.DataFrame DataFrame是一个二维的数组 DataFrame可以由一个dictionary构造得到
创建DataFrame
>>> data = {'city':['beijing','shanghai','guangzhou','shenzhen','hangzhou','chognqing'],'years':[2010,2011,2012,2013,2014,2015],'population':[2100,2300,2400,2500,
>>> print data
{'city': ['beijing', 'shanghai', 'guangzhou', 'shenzhen', 'hangzhou', 'chognqing'], 'population': [2100, 2300, 2400, 2500, 2600, 2600], 'years': [2010, 2011, 2012, 2013, 2014, 2015]}
>>> pd.DataFrame(data)
city population years
0 beijing 2100 2010
1 shanghai 2300 2011
2 guangzhou 2400 2012
3 shenzhen 2500 2013
4 hangzhou 2600 2014
5 chognqing 2600 2015
调整列的排序和行的名称
>>> pd.DataFrame(data,columns= ['years','city','population'])
years city population
0 2010 beijing 2100
1 2011 shanghai 2300
2 2012 guangzhou 2400
3 2013 shenzhen 2500
4 2014 hangzhou 2600
5 2015 chognqing 2600
>>> pd.DataFrame(data,columns= ['years','city','population'],index = ['A','B','C','D','E','F'])
years city population
A 2010 beijing 2100
B 2011 shanghai 2300
C 2012 guangzhou 2400
D 2013 shenzhen 2500
E 2014 hangzhou 2600
F 2015 chognqing 2600
>>>
DataFrame的每一个列,每一行都是一个Series
>>> mmap = pd.DataFrame(data,columns= ['years','city','population'],index = ['A','B','C','D','E','F'])
>>> print mmap
years city population
A 2010 beijing 2100
B 2011 shanghai 2300
C 2012 guangzhou 2400
D 2013 shenzhen 2500
E 2014 hangzhou 2600
F 2015 chognqing 2600
>>> type(mmap)
<class 'pandas.core.frame.DataFrame'>
>>> type(mmap['city'])
<class 'pandas.core.series.Series'>
>>>
>>> mmap.ix['C']
years 2012
city guangzhou
population 2400
Name: C, dtype: object
>>> type(mmap.ix['C'])
<class 'pandas.core.series.Series'>
DataFrame的赋值操作
>>> mmap['population']['A']
2100
>>> mmap['population']['A'] = 2000
__main__:1: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
>>> mmap['population']['A']
2000
>>> mmap['years'] = 2017
>>> mmap
years city population
A 2017 beijing 2000
B 2017 shanghai 2300
C 2017 guangzhou 2400
D 2017 shenzhen 2500
E 2017 hangzhou 2600
F 2017 chognqing 2600
>>>
赋值操作
>>> mmap.years = np.arange(6)
>>> mmap
years city population
A 0 beijing 2000
B 1 shanghai 2300
C 2 guangzhou 2400
D 3 shenzhen 2500
E 4 hangzhou 2600
F 5 chognqing 2600
>>> val = pd.Series([200,300,400],index=['A','B','C'])
>>> val
A 200
B 300
C 400
dtype: int64
>>> mmap['year] = val
File "<stdin>", line 1
mmap['year] = val
^
SyntaxError: EOL while scanning string literal
>>> mmap['year'] = val
>>> mmap
years city population year
A 0 beijing 2000 200.0
B 1 shanghai 2300 300.0
C 2 guangzhou 2400 400.0
D 3 shenzhen 2500 NaN
E 4 hangzhou 2600 NaN
F 5 chognqing 2600 NaN
>>> mmap['years'] = 2017
>>> mmap
years city population year
A 2017 beijing 2000 200.0
B 2017 shanghai 2300 300.0
C 2017 guangzhou 2400 400.0
D 2017 shenzhen 2500 NaN
E 2017 hangzhou 2600 NaN
F 2017 chognqing 2600 NaN
>>> mmap.columns
Index([u'years', u'city', u'population', u'year'], dtype='object')
>>> mmap.index
Index([u'A', u'B', u'C', u'D', u'E', u'F'], dtype='object')
python之pandas&&DataFrame的更多相关文章
- python之pandas&&DataFrame(二)
简单操作 Python-层次聚类-Hierarchical clustering >>> data = pd.Series(np.random.randn(10),index=[[' ...
- Python中pandas dataframe删除一行或一列:drop函数
用法:DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False) 参数说明:labels 就是要删除的行列的 ...
- 【338】Pandas.DataFrame
Ref: Pandas Tutorial: DataFrames in Python Ref: pandas.DataFrame Ref: Pandas:DataFrame对象的基础操作 Ref: C ...
- Python之Pandas中Series、DataFrame
Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...
- Python pandas DataFrame操作
1. 从字典创建Dataframe >>> import pandas as pd >>> dict1 = {'col1':[1,2,5,7],'col2':['a ...
- Python之Pandas中Series、DataFrame实践
Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...
- 如何通过Elasticsearch Scroll快速取出数据,构造pandas dataframe — Python多进程实现
首先,python 多线程不能充分利用多核CPU的计算资源(只能共用一个CPU),所以得用多进程.笔者从3.7亿数据的索引,取200多万的数据,从取数据到构造pandas dataframe总共大概用 ...
- Python时间处理,datetime中的strftime/strptime+pandas.DataFrame.pivot_table(像groupby之类 的操作)
python中datetime模块非常好用,提供了日期格式和字符串格式相互转化的函数strftime/strptime 1.由日期格式转化为字符串格式的函数为: datetime.datetime.s ...
- python中pandas里面的dataframe数据的筛选小结
pandas大家用的都很多,像我这种用的不够熟练,也不够多的就只能做做笔记,尽量留下点东西吧. 筛选行: a. 按照列的条件筛选 df = pandas.DataFrame(...) # suppos ...
随机推荐
- 常州day1p5
给一个 n∗m 的矩阵,矩阵的每个格子上有一个不超过 30 的非负整数. 我们定义一条合法的路线是从(1,1)开始只能向右和向下移动到达(n,m)的路线. 定义数列 A1,A2,A3,..,An+m− ...
- 洛谷 P2664 树上游戏 解题报告
P2664 树上游戏 题目描述 \(\text{lrb}\)有一棵树,树的每个节点有个颜色.给一个长度为\(n\)的颜色序列,定义\(s(i,j)\) 为 \(i\) 到 \(j\) 的颜色数量.以及 ...
- 网站统计IP PV UV实现原理
网站流量统计可以帮助我们分析网站的访问和广告来访等数据,里面包含很多数据的,比如访问试用的系统,浏览器,ip归属地,访问时间,搜索引擎来源,广告效果等.原来是一样的,这次先实现了PV,UV,IP三个重 ...
- 「CodePlus 2017 12 月赛」可做题2(矩阵快速幂+exgcd+二分)
昨天这题死活调不出来结果是一个地方没取模,凉凉. 首先有个一眼就能看出来的规律... 斐波那契数列满足$a_1, a_2, a_1+a_2, a_1+2a_2, 2a_1+3a_2, 3a_1+5a_ ...
- Contest Record
Contest 1135 at HZOI Problem A: 优美的棋发现一个可以证明的规律就是了……忘记给<<运算的左边变量转化为long long类型了,结果挂了20分……以后一定记 ...
- Linux常用网络工具:路由扫描之mtr
除了上一篇<Linux常用网络工具:路由扫描之traceroute>介绍的traceroute之外,一般Linux还内置了另一个常用的路由扫描工具mtr. mtr在某些方面比tracero ...
- ubuntu系统安装mysql二进制压缩包(tar.gz)以及navicat远程连接服务器(linux系统)
一.ubuntu安装mysql5.6二进制压缩包(tar.gz) 准备 0. 获取 mysql-5.5.15-linux2.6-i686.tar.gz 二进制安装文件 mysql 官网下载页面选择 L ...
- git相关网址
git入门教程: 廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b00 ...
- 【算法日记】Dijkstra最短路径算法
上一篇再说广度优先搜索的适合提到了图. 狄克斯拉特算法是在图的基础上增加了 加权图的概念.就是节点和节点之间是有不同距离的 1.算法实例 用Dijkstra算法找出以A为起点的单源最短路径步骤如下 算 ...
- JAVA多线程提高八:线程锁技术
前面我们讲到了synchronized:那么这节就来将lock的功效. 一.locks相关类 锁相关的类都在包java.util.concurrent.locks下,有以下类和接口: |---Abst ...