pandas数据处理
一、数据类型
pandas包含两种数据类型:series和dataframe。
1、dataframe
二维数据结构,表格形式,多行多列
每一列可以实不同的值类型(数值、字符串、布尔值等)
行索引:index; 列名:columns
df.dtypes:查看每列的数据类型
查询一行或者一列:Series df.loc[index]
查询多行多列:DataFrame df.loc[index:index+n]
df = pd.DataFrame({
'key': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5'],
'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']})
df.index:数据的索引
df.columns:数据的列名
1、 Series
一维数据结构,每一个元素都带有一个索引,与一维数组的含义相似,其中索引可以为数字或字符串。
DataFrame的一行或者一列就是Series类型
df1 = pd.Series([1.1, 2.2, 3.3],index=['i1', 'i2', 'i3'])
二、基本操作
1、读入、保存数据
读取纯文本文件
(1) 读入数据 read_csv
# 以BeiJing PM2.5数据为例
import pandas as pd
file_path = 'pm25_data_2010.1.1-2014.12.31.csv'
data = pd.read_csv(file_path)
print(data.index,data.columns,data.shape)#查看索引 列名 数据形状
print(data)
#输出结果:原数据
No year month day hour pm2.5 ... TEMP PRES cbwd Iws Is Ir
1 2010 1 1 0 NaN ... -11.0 1021.0 0 1.79 0 0
2 2010 1 1 1 NaN ... -12.0 1020.0 0 4.92 0 0
... ... ... ... ... ... ... ... ... ... ... .. ..
43823 2014 12 31 22 8.0 ... -4.0 1034.0 0 246.72 0 0
43824 2014 12 31 23 12.0 ... -3.0 1034.0 0 249.85 0 0
[43824 rows x 12 columns]
(2)读取txt文件
自己指定分隔符sep=“ … … ”和列名names=[… … … ]
data=pd.read_csv(file_path,sep="\t",headr=None,names=['time','a1','a2'])
(3)读取excel文件: read_excel()
data=pd.read_excel(file_path)
(4)读取mySql数据表:read_sql()
该方法有两个参数:
1、sql语句
2、数据库的连接 connection
import pymysql
conn=pymysql.connect(
host='127.0.0.1',
user='root',
password='12345678',
database='test',
charset='utf8')
data=pd.read_sql("select * from tableName",con=conn)
(5)保存数据 to_csv()
new_path = 'pm_new_data.csv'
usedData.to_csv(new_path, index=False)
2、查询数据
- df.loc:根据行、列的标签值查询 — 既能查询,又能覆盖写入,推荐
- df.iloc:根据行列的数字位置查询
- df.where方法
- df.query方法
(1) df.head() :查看前5行
(2) df.tail():查看最后5行
(3) 使用单个label值查询数据
#获得单个值
df.loc[