pandas 常用数据类型
- Series 一维,带标签数组
- DataFrame 二维,Series容器,DateFrame的每一行每一列都是一个Series
创建Series
左边的一列为索引,右边的为数据
手动添加索引
使用字典创建Series
dtype为Object(字符串)
修改
此时发现只有具有指定索引的数据被保留了下来
查看series的dtype
修改series的dtype
Series切片与索引
根据索引来获取数据
取多个索引
当不存在这个索引时,会返回NaN
根据位置来获取数据
获取索引与值
返回值了迭代,可转换为list操作
pandas中保留了很多numpy的方法
读取外部的数据
还有很多其他读取数据的方法的方法
DataFrame
创建DataFrame
设置行索引和列索引
每一行每一列都是一个Series
通过字典创建DataFrame
通过列表创建DataFrame
没有对应的键值对,就显示NaN
获取mysql中的数据
import pandas as pd
import pymysql
# # ----------pandas读取mysql的数据
con = pymysql.connect(host="localhost",user="root", password="root",
database="test", port=3306)
# 第一种方式
df = pd.read_sql("select * from people ",con=con)
print(df)
# 第二种方式 效果是一样的
cursor = con.cursor()
cursor.execute("select * from people")
data = [i for i in cursor.fetchall()]
cursor.execute("show columns from people")
column_info = cursor.fetchall()
df = pd.DataFrame(data,columns=[i[0] for i in column_info])
print(df)
<<<
name age
0 wang 22
1 xiao 23
name age
0 wang 22
1 xiao 23
第二种方式是是为了解决 如果我们需要的数据如果没有响应的方法去直接读取时,可以使用DataFrame的创建规则去生成DataFrame
查看行索引
查看列索引
查看数据的形状
查看数据的类型
查看数据的维度
其他方法
describe()可以帮助我们获取统计结果,计数,均值,标准差,最大值最小值
dataframe中排序的方法
DataFrame的切片操作
[]中写数字,表示对行操作,
[] 写字符串表示对列操作
列类型
切片操作
df.loc 通过标签索引行数据 ,通过字符串
df.iloc 通过位置获取行数据,通过数字
loc
iloc
不同的条件可以根据&或者|连接
不同的条件需要用括号,括起来
pandas的字符串方法
缺失数据的处理
判断数据是否为NaN:pd.isnull(df),pd.notnull(df)
处理方式1:删除NaN所在的行列dropna (axis=0, how=‘any’, inplace=False)
处理方式2:填充数据,t.fillna(t.mean()),t.fiallna(t.median()),t.fillna(0)
判断函数
选择a这一列不为null的Series
会把含有NaN的行删掉
这一行全为NaN才删除
有NaN就删除
inplace参数会将本身替换
将NaN填充
fillna函数只是暂时填充,并没有修改DataFrame的原值
填充数据
对某一列进行数据填充
在numpy中如果有一列的某个值为NaN,则这一列的均值为NaN
处理为0的数据时可以考虑:t[t==0]=np.nan
当然并不是每次为0的数据都需要处理
计算平均值等情况,nan是不参与计算的,但是0会