Pandas学习(一)------创建,基本方法

一.Series对象

1.pandas 的 series对象

data = pd.Series([0.25, 0.5, 0.75, 1.0])
print(data.index)       #返回索引
print(data.values)     #返回数据

自定义索引:

data = pd.Series([0.25, 0.5, 0.75, 1.0],index=['a', 'b', 'c', 'd'])

2.创建series对象

01. 从列表中创建

pd.Series([2, 4, 6])

02.由标量创建

pd.Series(5, index=[100, 200, 300]) #自动填充,指定索引值

03. 从字典创建

pd.Series({2:'a', 1:'b', 3:'c'}) 

pd.Series({2:'a', 1:'b', 3:'c'}, index=[3, 2])#指定索引筛选需要的结果

二.Dataframe对象

1.定义

DataFrame是一个表格型的数据结构,既有行索引,也有列索引,可以看作由Series对象组成的字典

b = pd.DataFrame({'name': ['A', 'B', 'C'], 'age': [12, 23, 34]}, columns=['name', 'age'])
print(b.values) #返回二维形式的数组,如果数据类型不一样,那么会自动向上转换成可以兼容所有数据的类型
print(b.columns)
print(b.index)

## 2.创建
## 01.由含有等长列表的字典来创建

```bash
b = pd.DataFrame({'name': ['A', 'B', 'C'], 'age': [12, 23, 34]}, columns=[
                 'name', 'age'], index=['one', 'two', 'three'])
print(b)#columns指定列的顺序,index指定行索引名称

02.通过 Series 对象字典创建

population=pd.Series(['1000','3000','2000'])
area=pd.Series(['A','B','C'])
pd.DataFrame({'population': population,'area': area})

03.通过 NumPy 二维数组创建

 pd.DataFrame(np.random.rand(3, 2),columns=['foo', 'bar'],index=['a', 'b', 'c'])

04.通过 NumPy 结构化数组创建。

A = np.zeros(3, dtype=[('A', 'i8'), ('B', 'f8')])
print(pd.DataFrame(A))

05.通过嵌套字典

data = {
    'name': {
        'one': 'A',
        'two': 'B',
        'three': 'C'},
    'age': {
        'one': 12,
        'two': 23,
     }}
m = pd.DataFrame(dataindex=['one','two','three'])#可以指定索引,如果不指定则会自己合并排序
print(m)

3.索引的引用

获取列:

b['name']
b.name

获取行:

b.ix['one']

利用索引修改值:

c=pd.Series(['女'],index=['one'])#指定修改值的列及内容
b['sex']=c

添加新列并赋值:

b['height']=['170','160','180']
print(b)

三.Index对象

1.定义:

构建数组或者DataFrame对象时,所用到的标签都会转换成一个Index对象,它不可修改

2.方法

在这里插入图片描述

四.基本方法

1.reindex

在这里插入图片描述
method可选参数为
ffill :向前填充
bfill :向后填充

a.reindex(index,columns)   #a不会发生变化,生成了一个新的对象
a.ix(index,columns) #index和columns都必须是原有的索引

2.丢弃指定轴

a.drop([index])     #丢弃指定行
a.drop([],axis=1)  #丢弃指定列

3.索引,选取和过滤

01.索引

在这里插入图片描述
在这里插入图片描述
示例:

import pandas as pd
b = pd.DataFrame({'name': ['A', 'B', 'C'], 'age': [12, 23, 34]}, columns=[
                 'name', 'age', 'sex'], index=[5, 4, 3])
print(b.ix[5:4])               #行索引5到4
print(b.ix[:2, :1])            #前两行,第一列那
print(b.ix[:, 'name'])         #name列所有行
print(b.ix[5])                 #索引为5的行
print(b.xs(['name'], axis=1))  #默认axis=0,选取name列

4.算术运算

在这里插入图片描述
两个Pandas对象进行这些运算时,行和列取并集,所以会有缺省值NAN来填充交集以外的部分,若想用其他值来填充,则可以通过参数fill_value设置,如方法a.add(b,fill_value)

5.函数应用和映射

a.apply(func,axis) #对某个轴应用函数
a.applymap(fmt)    #对a所有元素应用某格式
a[column_name].map(fmt)   #对a的某一列应用某格式

6.排序

a.sort_index(axis,ascending,by)#by代表按照某一列或者几列进行排序,返回的是一个已排序的对象
a.order()  #按值排序

7.带有重复值的轴索引

a.index.is_unique() #判断索引是否唯一

8.统计

a.sum(axis,skipna=False)#skipna是指是否要跳过缺省值
a.describe()#得到多个汇总统计

在这里插入图片描述
在这里插入图片描述

9.唯一值

a.unique() #将a中的唯一值筛选出来

a.value_counts(sorted=True) #计算a中各值出现的次数

mark=a.isin(list)
a[mark]#筛选a中在list中的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值