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 ...
随机推荐
- Codeforces707Div2
A Small, but very brave, mouse Brain was not accepted to summer school of young villains. He was ups ...
- Hadoop1.2.1异常No route to host
Hadoop1.2.1异常Bad connect ack with firstBadLink (No route to host ) 0.说明 Hadoop集群之前运行正常,增加了新节点之后,需要执行 ...
- [JSOI2008]Blue Mary的战役地图——全网唯一一篇dp题解
全网唯一一篇dp题解 网上貌似全部都是哈希+二分(反正我是大概baidu了翻了翻)(还有人暴力AC了的..) 哈希还是相对于dp还是比较麻烦的. 而且正确性还有可能被卡(当然这个题不会) 而且还容易写 ...
- 【翻译】InterlockedIncrement内部是如何实现的?
Interlocked系列函数可以对内存进行原子操作,它是如何实现的? 它的实现依赖于底层的CPU架构.对于某些CPU来说,这很简单,例如x86可以通过LOCK前缀直接支持Interl ...
- error 65: access violation at 0x40021000 : no 'read' permission
http://blog.csdn.net/stephen_yu/article/details/7725247 使用MDK自己创建一个STM32F103VE核的项目 加入源码后编译,正常,在线仿真单步 ...
- win7右键新建文件夹不见了
http://zhidao.baidu.com/question/175786636169796084.html 看下注册表文件:reg add "HKEY_CLASSES_ROOT\Dir ...
- CSS中background样式的repeat和no-repeat
自http://blog.sina.com.cn/s/blog_98eef7830101cv8t.html获取的知识,特此感谢. <!DOCTYPE html> <html lang ...
- 04-树6. Huffman Codes--优先队列(堆)在哈夫曼树与哈夫曼编码上的应用
题目来源:http://www.patest.cn/contests/mooc-ds/04-%E6%A0%916 In 1953, David A. Huffman published his pap ...
- Java读取大文件的高效率实现
1.概述 本教程将演示如何用Java高效地读取大文件.这篇文章是Baeldung (http://www.baeldung.com/) 上“Java——回归基础”系列教程的一部分. 2.在内存中读取 ...
- 【洛谷 P4016】 负载平衡问题(费用流)
题目链接 环形均分纸牌,既然是网络流23题的那就用网络流做把. 套路拆点. 供需平衡. 源点向大于平均数的点的入点连流量为这个数减去平均数的差,费用为0的边,表示需要移走这么多. 小于平均数的点的出点 ...