pandas笔记

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@author: XiangguoSun
@contact: sunxiangguodut@qq.com
@file: learn_pandas.py
@time: 2017/3/8 8:18
@software: PyCharm
"""
import numpy as np
from pandas import Series, DataFrame
import pandas as pd


'''
1,基本数据结构
'''
'''
1.1 Series: dic+array
'''
obj_dic={'a':1,'b':2,'c':3}
objd=Series(obj_dic)
obj = Series([4,7,-5,3],index=['a','b','c','d'])
print obj.index,obj.values
print obj[['a','c']]
print 'b' in obj

obj_na = Series(obj,index=['a','b','c','d','add'])
print obj_na

print obj_na.isnull()  # also pd.isnull(obj_na)
print obj_na.notnull()  # also pd.notnull(obj_na)
print obj_na.name
print obj_na.index.name
obj_na.index=['x','y','z','o','p']
obj_na.name='my_table'
obj_na.index.name='my_index'
print obj_na

'''
1.2 DataFrame
'''
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002],
        'pop': [1.5, 1.7, 3.6, 2.4, 2.9]
        }
df = DataFrame(data, columns=['year', 'state', 'pop', 'debt'], index=['one', 'two', 'three', 'four', 'five'])
print df
print df.ix['three']
df['five']=np.arange(5)
print df

#增加和删除列
df['new_column']=df.state == 'Ohio'
print df
del df['new_column']
print df.columns

#嵌套字典
pop = {'Nevada':{2001:2.4,2002:2.9},
       'Ohio':{2000:1.5,2001:1.7,2002:3.6}
       }
data = DataFrame(pop)
print data
print data.T
print DataFrame(pop,index=[2001,2002,2003])
data.index.name='sunxiangguo'
data.columns.name = 'state'
print data
print data.values#返回二维ndarray

#索引对象index:不常用,略
'''index对象不可修改'''

'''
2,基本功能
'''
#重新索引
obj = Series([4.5,7,-2,4],index=['b','a','c','d'])
print obj
obj2 = obj.reindex(['a','b','c','d','e'])
print obj2
obj3 = obj.reindex(['a','b','c','d','e'], fill_value=0)
print obj3

#插值处理
obj = Series(['blue','perple','yellow'],index=[0,2,4])
print obj
obj2 = obj.reindex(range(8),method='ffill')  # 前向插值
print obj2
print obj.reindex(range(7),method='pad') # equal to ffill
print obj.reindex(range(7),method='bfill') # 后向插值
print obj.reindex(range(7),method='backfill') # equal to bfill


这里写图片描述
这里写图片描述
这里写图片描述

# 丢弃指定轴上的项
obj = Series(np.arange(5), index=['a', 'b', 'c', 'd', 'e'])
new_obj = obj.drop('c')
print obj
print new_obj
print obj.drop(['c', 'd'])

data = DataFrame(np.arange(16).reshape((4, 4)),
                 index=['Ohio', 'Colorado', 'Utah', 'New York'],
                 columns=['one', 'two', 'three', 'four']
                 )

print data
print data.drop(['Colorado', 'Ohio'])
print data.drop('two', axis=1)
print data.drop(['two', 'four'], axis=1)

# 索引、选取和过滤
data = Series(np.arange(4), index=['a', 'b', 'c', 'd'])
print data
print data['b']
print data[1]
print data[2:4]
print data[['b','a','d']]
print data[[1,3]]
print data[data<2]
print data['a':'c']

data = DataFrame(np.arange(16).reshape((4, 4)),
                 index=['Ohio', 'Colorado', 'Utah', 'New York'],
                 columns=['one', 'two', 'three', 'four'])
print data
print data['two']  # 选取列
print data[['three', 'one']]  # 选取列
print data[:2]  # 注意[]里面是切片或者布尔型数组时,选取的不再是列,而是行
print data[data['three'] > 5]  # 注意[]里面是切片或者布尔型数组时,选取的不再是列,而是行

print data.ix[:2, :2]  # 同时选取行和列
print data.ix[1:3]  # 选取一组行

print data.xs('Ohio')  # 根据标签选取若干行
print data.xs(range(1, 4), axis=1)  # 根据标签选取若干列
'''
print data.icol(2)
print data.irow(0)
这两个已经被下面两行代码取代
'''
print data.iloc[:, 2]
print data.iloc[0]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值