pandas简介
Pandas (Python Data Analysis Library) 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
numpy更加适用于科学计算领域;而pandas最初据说是设计用于金融领域,因此pandas可能更加适用于各类实际应用场景的处理。另一方面,numpy适用于处理“干净”的数据,及规范、无缺失的数据,而pandas更加擅长数据清洗(data munging),这为后一步数据处理扫清障碍。
Excel可以处理少量的数据,当数据量较大时许多操作无法进行,这就需要利用pandas模块进行数据处理。
pandas中的python数据结构
- Series:一堆数组。与python标准数据结构list列表类似。
- DataFrame:二维的表格型数据结构。可以理解为Series容器。
- Panel:三维数组,可以理解为DataFrame容器。
常见的pandas读取数据类型
- pandas.read_csv() 参数详解
- pandas.read_excel()
- pandas.read_sql()
- pandas.read_html()
- pandas.read_json()
Series的创建与索引
1、
import pandas as pd
#通过数组创建Series
s1 = pd.Series([1,2,3,'Tom',True])
print(s1)
#创建指定索引列的Series
s2 = pd.Series(['tom','jack','dane'],index=['001','002','003'])
print(s2)
#使用字典创建Series
s3 = pd.Series({'tom':'001','jack':'002'})
print(s3)
#获取s1的索引列
print(s1.index)
#获取s1的值
print(s1.values)
# 获取多个索引的值
print(s1[[0,1]])
2、
s = pd.Series([1,2,3,2,4],index=['a','b','c','d','e'])
print(s)
print('\n')
print(s.max()) #最大
print(s.min()) #最小
print(s.median()) #中位数
print(s.sum()) #求和
s.drop('d')#删除索引为d的值
s['a'] = 0 #修改索引为a的值
print(s)
s1 = pd.Series([5,4,3,2,1],index=list(map(lambda x:x.upper(),['a','b','c','d','e'])))
print('\n')
print(s1)
s2 = s.append(s1) #将s1合并到s后
print(s2)
a 1
b 2
c 3
d 2
e 4
dtype: int64
4
1
2.0
12
a 0
b 2
c 3
d 2
e 4
dtype: int64
A 5
B 4
C 3
D 2
E 1
dtype: int64
a 0
b 2
c 3
d 2
e 4
A 5
B 4
C 3
D 2
E 1
dtype: int64
dataframe的基本操作
创建dataframe
1、 一般使用pandas直接读取文件,就是dataframe类型
读取文件路径写法
pd.read_csv()
pd.read_excel()
pd.read_sql()
2、通过字典来创建
import pandas as pd
data = {'id':[1,2,3],'name':['tom','jack','luck']}
df = pd.DataFrame(data)
print(df)
结果:
id name
0 1 tom
1 2 jack
2 3 luc
3、直接提供数据数组和columns(列名)
import pandas as pd
s2 = pd.DataFrame([['tom','jack','dane'],['tom1','jack1','dane1']],columns=['001','002','003'])
print(s2)
001 002 003
0 tom jack dane
1 tom1 jack1 dane1
dataframe基本操作
#获取数据类型
print(df.dtypes)
#获取columns
print(df.columns)
#获取索引列
print(df.index)
输出:
id int64
name object
dtype: object
Index(['id', 'name'], dtype='object')
RangeIndex(start=0, stop=3, step=1)
#获取某一列
print(df['id'])
print(type(df['id'])) #series
#获取多列数据,按索引
print(df[['name','id']])
print(type(df[['name','id']])) #DataFrame
#获取前n条数据
print(df.head(1))
#获取后n条数据
print(df.tail(2))
#获取某一行数据
df.loc[1]
#获取多行数据
df.loc[1:2]