Pandas与数据处理之DataFrame:创建、查看与访问

DataFrame是一个表格型的数据结构,每一列代表一个变量,每一行则是一条记录,DataFrame是一个共享index的Series的集合。

创建和加载

import pandas as pd

import numpy as np

创建函数:df = pd.DataFrame(np.random.randn(6, 4), index = pd.to_datetime(['2016-01-01', '2016-01-02', '2016-01-03', '2016-01-04', '2016-01-05, '2016-01-06'], columns = list('ABCD')),其中randn(6,4)表示生成一个6*4的二维数组, index指定索引列,columns指定列名。

从text或者csv文件中读取:pd.read_table('file_path', sep = '\t', header = None, names = None),其中file_path是带路径的文件名,sep表示文件中的列分隔符,header是指用作别名的行数,None表示没有,默认值为0。names用来指定列名,跟header是二选1的。

从csv文件中读取:pd.read_csv('file_path', header = None, sep = ''):与read_table相同。

从mysql中读取:首先建立mysql连接:import MySQLDb

mysql_cn = MySQLDb.connect(host='localhost', port = 3306, user= 'root', passwd = 'pwd123', db = 'stock')

pd.read_sql('select * from company limie 10;', con = mysql_cn)

查看DataFrame对象

前几行:df.head(3)

后几行:df.tail(3)

查看列名:df.columns

查看行的index:df.index

查看数据值:df.values

查看描述性信息:df.describe()

DataFrame对象索引与切片

对行进行切片:df[1:3]

提取单独的一列:df['A']

提取多列:df[['A', 'B']]

根据boolean值查询:df[df['A'] > 0], 查看A列大于0的行;

更灵活的函数为loc,iloc,ix:

标签索引与切片:loc,通过标签来访问

提取特定列:df.loc[:, 'A'],提取'A'列

提取特定多列:df.loc[:, 'A':'C'],提取'A'到'C'列

提取特定行的特定列:df.loc[dates[0:2], 'A':'C'],df.loc[dates[0], 'A':'C'],提取特定date的A-C列

根据boolean读取:df.loc[df.loc[:, 'A'] > 0]

位置索引与切片:iloc,通过位置来访问

提取特定行:df.iloc[2]

提取特定列:df.iloc[:, 2]

提取指定行和列:df.iloc[[1,4], [3,5]](第1,4行,第3,5列)

切片:df.iloc[1:4, 2:4](前闭后开区间)

提取特定位置:df.iloc[3,4], df.iat[3,4]

根据boolean值进行提取:df.loc[:,df.iloc[3]>0],所有行中,选择第三行大于0的列。

广义索引与切片:ix,自动判断使用标签或者位置

对行切片:df.ix[2:5]

取某几行,某几列:df.ix[[1,3], 2], df.ix[[1,3], 'C']

对行列进行切片:df.ix[1:3, 'A':'C']

根据boolean值进行提取:df.ix[1:3, iloc[3]> 0], [1,3)行,其中第3行>0的列。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值