一、Pandas模块介绍
- Pandas模块是Python的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据(数值型、文本型、时间序列)。
- Pandas建立在Numpy之上。
- 提供数据清洗功能,可用于数据挖掘和数据分析。
- 支持类似SQL的数据增、删、查、改,拥有丰富的数据处理函数。
支持时间序列分析功能;支持灵活处理缺失数据等。
二、Pandas数据结构
1、Series对象(带标签的数组)
2、DataFrame对象
3、Series、DataFrame
3.1Series对象
pandas.Series( data, index, dtype, copy)
说明:data可以是标量、列表、迭代对象、字典、ndarray等对象。
import pandas as pd
import numpy as np
s1 = pd.Series(5,index=[1,2,3,4],dtype='str') #标量,设置了索引与类型
print(s1)
s2 = pd.Series([10,20,30,40]) #列表
print(s2)
s3 = pd.Series(range(10,20)) #迭代对象
print(s3)
s4 = pd.Series({'a':'H1','b':'H2','c':'H3'}) #字典,键为索引
print(s4)
s5 = pd.Series(np.array(['x','y','z'])) #ndarray
print(s5)
3.2 DataFrame创建:
Pd.DataFrame(data, index, columns, dtype, copy) #构造DataFrame数据框架
说明:(1)从列表、字典、ndarray等对象转化为DataFrame
import pandas as pd
info = {'name':'张三','age':20,'tel':'13500100203','hobby':'上网,打游戏,运动'}
sd = pd.Series(info)
df1 = pd.DataFrame(sd)
df2 = pd.DataFrame(info,columns=['name','age','tel','hobby'],index=[0])
print(df1)
print(df2)
(2)从文件(文本、表格、数据库)中读取数据转化为DataFrame。
三、读取不同的数据源中的数据(关系型)
1、读取文本文件
Pandas读取csv/tsv/txt文件使用read_csv或read_table实现。
函数格式:read_csv(参数) 或read_table(参数)
(1)read_csv和read_table之间的区别
函数pd.read_csv和pd.read_table的内容相同,只是默认分隔符不同。在read_csv中“逗号,”作为定界符,在read_table中定界符为“\ t”。如果既不是逗号也不是制表符,则可以通过参数(sep或delimiter)设置区分符。
(2)读取没有标题的CSV
- 如果未设置任何参数,则将第一行识别为标题并将自动分配列名columns。
11,12,13,14
21,22,23,24
31,32,33,34
df = pd.read_csv('simple.csv')
print(df.columns)
如果header = None,则将为列名列分配一个序号(0,1,2,3,……)
可以将任意值设置为列名,参数为names=(‘A’,‘B’,‘C’,‘D’)。通过列表或元组指定。
df_names = pd.read_csv('sample.csv', names=('A', 'B', 'C', 'D'))
print(df_names)
(3) 读取有标题的CSV
a,b,c,d
11,12,13,14
21,22,23,24
31,32,33,34
指定标题的行号从0开始,例如header = 0。由于默认值为header = 0,因此如果第一行是header,则可以获得相同的结果。即有标题的csv