python使用教程pandas-python之pandas简单介绍及使用(一)

In [24]: s4[s4 > 9000]

Out[24]:

数学 9001.0

dtype: float64

Series就先简要写到这,下面看pandas的另一种数据结构DataFrame.

DataFrame

DataFrame 是一种二维的数据结构,非常接近于电子表格或者类似 mysql 数据库的形式。它的竖行称之为 columns,横行跟前面的 Series 一样,称之为 index,也就是说可以通过 columns 和 index 来确定一个主句的位置。

首先来导入模块

In [27]: from pandas import Series,DataFrame

In [26]: data = {"name":['google','baidu','yahoo'],"marks":[100,200,300],"price":[1,2,3]}

In [28]: f1 = DataFrame(data)

In [29]: f1

Out[29]:

marks   name    price

0    100    google    1

1    200    baidu    2

2   300    yahoo    3

这是定义一个 DataFrame 对象的常用方法——使用 dict 定义。字典的“键”("name","marks","price")就是 DataFrame 的 columns 的值(名称),字典中每个“键”的“值”是一个列表,它们就是那一竖列中的具体填充数据。上面的定义中没有确定索引,所以,按照惯例(Series 中已经形成的惯例)就是从 0 开始的整数。从上面的结果中很明显表示出来,这就是一个二维的数据结构(类似 excel 或者 mysql 中的查看效果)。

上面的数据显示中,columns 的顺序没有规定,就如同字典中键的顺序一样,但是在 DataFrame 中,columns 跟字典键相比,有一个明显不同,就是其顺序可以被规定,向下面这样做:

In [31]: f2 = DataFrame(data,columns=['name','price','marks'])

In [32]: f2

Out[32]:

name    price    marks

0  google   1    100

1  baidu    2   200

2  yahoo   3    300

跟 Series 类似的,DataFrame 数据的索引也能够自定义

In [35]: f3 = DataFrame(data,columns=['name','marks','price'],index=['a','b','c'])

In [36]: f3

Out[36]:

name    marks    price

a   google 100    1

b baidu 200    2

c yahoo 300 3

定义 DataFrame 的方法,除了上面的之外,还可以使用“字典套字典”的方式。

In [40]: newdata = {'lang':{'first':'python','second':'java'},'price':{'first':5000,'second':2000}}

In [41]: f4 = DataFrame(newdata)

In [42]: f4

Out[42]:

lang    price

first   python   5000

second java    2000

在字典中就规定好数列名称(第一层键)和每横行索引(第二层字典键)以及对应的数据(第二层字典值),也就是在字典中规定好了每个数据格子中的数据,没有规定的都是空。

DataFrame 对象的 columns 属性,能够显示素有的 columns 名称。并且,还能用下面类似字典的方式,得到某竖列的全部内容(当然包含索引):

>>> newdata = {"lang":{"firstline":"python","secondline":"java"}, "price":{"firstline":8000}}

>>> f4 = DataFrame(newdata)

>>> f4

lang price

firstline python 8000

secondline java NaN

>>> DataFrame(newdata, index=["firstline","secondline","thirdline"])

lang price

firstline python 8000

secondline java NaN

thirdline NaN NaN

DataFrame 对象的 columns 属性,能够显示素有的 columns 名称。并且,还能用下面类似字典的方式,得到某竖列的全部内容(当然包含索引):

In [44]: f3['name']

Out[44]:

a google

b baidu

c yahoo

Name: name, dtype: object

下面操作是给同一列赋值

newdata1 = {'username':{'first':'wangxing','second':'dadiao'},'age':{'first':24,'second':25}}

In [67]: f6 = DataFrame(newdata1,columns=['username','age','sex'])

In [68]: f6

Out[68]:

username    age    sex

first wangxing    24    NaN

second dadiao   25    NaN

In [69]: f6['sex'] = 'man'

In [70]: f6

Out[70]:

username age    sex

first wangxing   24   man

second dadiao   25 man

也可以单独的赋值,除了能够统一赋值之外,还能够“点对点”添加数值,结合前面的 Series,既然 DataFrame 对象的每竖列都是一个 Series 对象,那么可以先定义一个 Series 对象,然后把它放到 DataFrame 对象中。如下:

ssex = Series(['男','女'],index=['first','second'])

In [72]: f6['sex'] = ssex

In [73]: f6

Out[73]:

username    age   sex

first wangxing   24    男

second dadiao    25    女

还可以更精准的修改数据吗?当然可以,完全仿照字典的操作:

In [74]: f6['age']['second'] = 30

In [75]: f6

Out[75]:

username    age    sex

first wangxing    24    男

second dadiao   30     女

参考http://wiki.jikexueyuan.com/project/start-learning-python/312.html所整理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值