一、pandas读取数据
1、使用pd.read_csv读取数据
1.1 读取CSV,使用默认的标题行、逗号分隔符
ratings = pd.read_csv(fpath)
# 查看前几行数据
ratings.head()
# 查看数据的形状,返回(行数、列数)
ratings.shape
# 查看列名列表
ratings.columns
# 查看索引列
ratings.index
# 查看每列的数据类型
ratings.dtypes
1.2 读取txt文件,自己指定分隔符、列名
fpath = "./datas/crazyant/access_pvuv.txt"
pd.read_csv(fpath)
'''
2019-09-10\t139\t92
0 2019-09-09\t185\t153
1 2019-09-08\t123\t59
2 2019-09-07\t65\t40
3 2019-09-06\t157\t98
4 2019-09-05\t205\t151
5 2019-09-04\t196\t167
6 2019-09-03\t216\t176
7 2019-09-02\t227\t148
8 2019-09-01\t105\t61
'''
pvuv = pd.read_csv(
fpath,
sep="\t",
header=None,
names=['pdate', 'pv', 'uv']
)
'''
pdate pv uv
0 2019-09-10 139 92
1 2019-09-09 185 153
2 2019-09-08 123 59
3 2019-09-07 65 40
4 2019-09-06 157 98
5 2019-09-05 205 151
6 2019-09-04 196 167
7 2019-09-03 216 176
8 2019-09-02 227 148
9 2019-09-01 105 61
'''
2、读取excel文件
fpath = "./datas/crazyant/access_pvuv.xls"
pvuv = pd.read_excel(fpath)
3、读取MySQL数据库
import pymysql
conn = pymysql.connect(
host='10.0.3.61',
user='root',
password='yunzhihui123',
database='test_becky',
charset='utf8'
)
mysql_page = pd.read_sql("select * from `table_name`", con=conn)
二、pandas数据结构
1. Series
Series是一种类似于一维数组的对象,它由一组数据(不同数据类型)以及
一组与之相关的数据标签(即索引)组成。
1.1 仅有数据列表即可产生最简单的Series
s1 = pd.Series([1,'a',5.2,7])
# 获取索引
s1.index
# 获取数据
s1.values
1.2 创建一个具有标签索引的Series
s2 = pd.Series([1, 'a', 5.2, 7], index=['d','b','a','c'])
s2.index
1.3 使用Python字典创建Series
sdata={'Ohio':35000,'Texas':72000,'Oregon':16000,'Utah':5000}
s3=pd.Series(sdata)
1.4 根据标签索引查询数据
类似Python的字典dict
s2['a']
s2[['b','a']]
2. DataFrame
DataFrame是一个表格型的数据结构
* 每列可以是不同的值类型(数值、字符串、布尔值等)
* 既有行索引index,也有列索引columns
* 可以被看做由Series组成的字典
创建dataframe最常用的方法,见01节读取纯文本文件、excel、mysql数据库
2.1 根据多个字典序列创建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 = pd.DataFrame(data)
df.dtypes
df.columns
df.index
3. 从DataFrame中查询出Series
* 如果只查询一行、一列,返回的是pd.Series
* 如果查询多行、多列,返回的是pd.DataFrame