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的更多相关文章

  1. python之pandas&&DataFrame(二)

    简单操作 Python-层次聚类-Hierarchical clustering >>> data = pd.Series(np.random.randn(10),index=[[' ...

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

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

  3. 【338】Pandas.DataFrame

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

  4. Python之Pandas中Series、DataFrame

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

  5. Python pandas DataFrame操作

    1. 从字典创建Dataframe >>> import pandas as pd >>> dict1 = {'col1':[1,2,5,7],'col2':['a ...

  6. Python之Pandas中Series、DataFrame实践

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

  7. 如何通过Elasticsearch Scroll快速取出数据,构造pandas dataframe — Python多进程实现

    首先,python 多线程不能充分利用多核CPU的计算资源(只能共用一个CPU),所以得用多进程.笔者从3.7亿数据的索引,取200多万的数据,从取数据到构造pandas dataframe总共大概用 ...

  8. Python时间处理,datetime中的strftime/strptime+pandas.DataFrame.pivot_table(像groupby之类 的操作)

    python中datetime模块非常好用,提供了日期格式和字符串格式相互转化的函数strftime/strptime 1.由日期格式转化为字符串格式的函数为: datetime.datetime.s ...

  9. python中pandas里面的dataframe数据的筛选小结

    pandas大家用的都很多,像我这种用的不够熟练,也不够多的就只能做做笔记,尽量留下点东西吧. 筛选行: a. 按照列的条件筛选 df = pandas.DataFrame(...) # suppos ...

随机推荐

  1. Redis的List链表类型命令

    List是一个链表结构,主要功能是push.pop.获取一个范围的所有值等等,操作中key理解为链表的名字.list类型其实就是一个每个子元素都是string类型的双向链表.我们可以通过push.po ...

  2. ctsc2009 移民站选址

    分析:非常非常好的一道题! 首先需要对问题进行转化: 行列无关,对于行单独处理,对于列单独处理 必然存在一个最优方案使得每一个新站与旧站重合. 转化1很显然,对于转化2,是一类非常经典的“中位数问题” ...

  3. Nginx--try_files

    Nginx的配置语法灵活,可控制度非常高.在0.7以后的版本中加入了一个try_files指令,配合命名location,可以部分替代原本常用的rewrite配置方式,提高解析效率.   作用域:se ...

  4. centos7-java模拟cpu占用高及排查

    环境 centos7 1核2GB Java8 模拟cpu占用高 新建一个名为jvm-learn的springboot项目 模拟代码如下 import org.springframework.boot. ...

  5. css之display:inline-block布局--转

    css之使用display:inline-block来布局   css之display:inline-block布局 1.解释一下display的几个常用的属性值,inline , block, in ...

  6. jdbc:oracle:thin:@localhost:1521:orcl和jdbc:oracle:thin:@localhost:1521/orcl的区别

      Oracle Thin JDBC Driver 驱动程序包名:ojdbc14.jar.ojdbc6.jar 驱动程序类名: oracle.jdbc.driver.OracleDriver JDBC ...

  7. UVA 1647 Computer Transformation

    https://vjudge.net/problem/UVA-1647 题意: 开始有一个1,接下来每一步1变成01,0变成10 问n不之后00的个数 打表找规律 第3步之后: 如果第i步之后有x个字 ...

  8. 计算方法 -- 解线性方程组直接法(LU分解、列主元高斯消元、追赶法)

    #include <iostream> #include <cstdio> #include <algorithm> #include <cstdlib> ...

  9. 您是哪个等级的CSS开发人员?

    我们在不断的学习,追求进步与提高,到底学到什么程度了,到底是 不是真的了解CSS,是哪个层次了呢.我们来对照一下. 第0级:CSS?那不是一个多人射击游戏吗?  CSS? Isn't that a m ...

  10. An impassioned circulation of affection(尺取+预处理)

    题目链接:http://codeforces.com/contest/814/problem/C 题目: 题意:给你一个长度为n的字符串,m次查询,每次查询:最多进行k步修改,求字符c(要输入的字符) ...