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. 【MVVM 原生】原生MVVM的使用

    一.前言       前些天需要完成一个任务,该任务属于公司的一些核心代码,为了避免不必要的麻烦,任务要求不能使用第三方的MVVM框架,必须用原生的. 平时习惯了Dev与MVVMLight,遇上原生的 ...

  2. 【BZOJ1226】学校食堂(动态规划,状态压缩)

    [BZOJ1226]学校食堂(动态规划,状态压缩) 题面 BZOJ 洛谷 题解 发现\(b\)很小,意味着当前这个人最坏情况下也只有后面的一小部分人在他前面拿到饭. 所以整个结果的大致顺序是不会变化的 ...

  3. 【BZOJ2653】Middle(主席树)

    [BZOJ2653]Middle(主席树) 题面 BZOJ 洛谷 Description 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整.给你 ...

  4. Hive(六)hive执行过程实例分析与hive优化策略

    一.Hive 执行过程实例分析 1.join 对于 join 操作:SELECT pv.pageid, u.age FROM page_view pv JOIN user u ON (pv.useri ...

  5. 【spoj】DIVCNTK

    Portal -->Spoj DIVCNTK Solution 这题的话其实是..洲阁筛模板题?差不多吧 题意就是给你一个函数\(S_k(x)\) \[ S_k(n)=\sum\limits_{ ...

  6. iOS APNs实战分享

    序言: 因为App的功能需要,最近一直在调研苹果的APNs推送,开始时觉得超麻烦,现在感觉还是比较easy,“难者不会,会者不难”,自己踩过了这么多的坑终于会了,不出来吐槽(装X)一下对不起自己,23 ...

  7. 调整的R方_如何选择回归模型

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  8. linux 文件IO

    1.文件描述符 (1)文件描述符的本质是一个数字,这个数字本质上是进程表中文件描述符表的一个表项,进程通过文件描述符作为index去索引查表得到文件表指针,再间接访问得到这个文件对应的文件表.(2)文 ...

  9. php 傻瓜式代码计算两个时间间隔

    $stamp = (strtotime($_POST['start'])-strtotime($_POST['end'])); $s = $stamp%60; //秒 $m_stamp= ($stam ...

  10. Python学习笔记(十)匿名函数

    摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431843456 ...