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

    A Small, but very brave, mouse Brain was not accepted to summer school of young villains. He was ups ...

  2. Hadoop1.2.1异常No route to host

    Hadoop1.2.1异常Bad connect ack with firstBadLink (No route to host ) 0.说明 Hadoop集群之前运行正常,增加了新节点之后,需要执行 ...

  3. [JSOI2008]Blue Mary的战役地图——全网唯一一篇dp题解

    全网唯一一篇dp题解 网上貌似全部都是哈希+二分(反正我是大概baidu了翻了翻)(还有人暴力AC了的..) 哈希还是相对于dp还是比较麻烦的. 而且正确性还有可能被卡(当然这个题不会) 而且还容易写 ...

  4. 【翻译】InterlockedIncrement内部是如何实现的?

        Interlocked系列函数可以对内存进行原子操作,它是如何实现的?     它的实现依赖于底层的CPU架构.对于某些CPU来说,这很简单,例如x86可以通过LOCK前缀直接支持Interl ...

  5. error 65: access violation at 0x40021000 : no 'read' permission

    http://blog.csdn.net/stephen_yu/article/details/7725247 使用MDK自己创建一个STM32F103VE核的项目 加入源码后编译,正常,在线仿真单步 ...

  6. win7右键新建文件夹不见了

    http://zhidao.baidu.com/question/175786636169796084.html 看下注册表文件:reg add "HKEY_CLASSES_ROOT\Dir ...

  7. CSS中background样式的repeat和no-repeat

    自http://blog.sina.com.cn/s/blog_98eef7830101cv8t.html获取的知识,特此感谢. <!DOCTYPE html> <html lang ...

  8. 04-树6. Huffman Codes--优先队列(堆)在哈夫曼树与哈夫曼编码上的应用

    题目来源:http://www.patest.cn/contests/mooc-ds/04-%E6%A0%916 In 1953, David A. Huffman published his pap ...

  9. Java读取大文件的高效率实现

    1.概述 本教程将演示如何用Java高效地读取大文件.这篇文章是Baeldung (http://www.baeldung.com/) 上“Java——回归基础”系列教程的一部分. 2.在内存中读取 ...

  10. 【洛谷 P4016】 负载平衡问题(费用流)

    题目链接 环形均分纸牌,既然是网络流23题的那就用网络流做把. 套路拆点. 供需平衡. 源点向大于平均数的点的入点连流量为这个数减去平均数的差,费用为0的边,表示需要移走这么多. 小于平均数的点的出点 ...