Python学习笔记之Pandas基本操作(表格)及绘图

使用pip安装Pandas:

pip install pandas

导入 Pandas包并起别名pd:

import Pandas as pd

创建DataFrame型数据:

scores = {
	'name' : ['johe', 'mike', 'tom', 'jeck'],
	'sex' : ['male', 'female', 'male', 'male'],
	'chinese' : [88, 83, 90, 78],
	'math' : [96, 88, 86, 90],
	'english' : [85, 80, 90, 75]
}
df = pd.DataFrame(scores)    # 可传入 index=[...] 作为索引

series:有索引的类数组的数据结构,可作为DataFrame的一列

df['computer'] = pd.Series([65, 70, 85, 90])

读取 csv 文件(表格文件,有一定的格式,也可以是 xlsx 文件):

df = pd.read_csv('./form_test.csv')    # 传入csv文件路径,返回数据类型为DataFrame

操作DataFrame数据:

df.index    # 获取索引
df.columns    # 获取属性
df.head(i)    # 获取属性行和表格前i行,默认5行
df.tail(i)    # 获取属性行和表格最后i行

df.loc[i]    # 查找行:根据索引,第二个参数可以传入属性
df.iloc[i]    # 查找行:根据下标
df.ix[i]    # 兼并loc和iloc功能
df.ix[:i]    # 通过切片取前i行,可以用下标或者索引切片

df[df.math>90]    # 筛选出数学成绩大于90的记录
df[(df.english>80)&(df.math>90)]    # 复合筛选:英语成绩大于80且数学成绩大于90

df.drop(['english'], axis=1)    # 删除指定列
df['english'] = [85, 80, 90, 75]    # 添加指定列

df.sort_values(['math'])    # 排序:属性列升序排序,可以传入多个属性进行排序
df.values    # 全部转化为数组
df.math.values    # 将指定列转化为数组
df.T    # 转置

数学统计:

df.describe()    # 统计(个数、均值、最大值、最小值等)
df.mean()    # 均值
df.var()    # 方差
df.sex.count_values()    # 统计聚类(个数)
df.groupby('chinese').sum()    # 将某一属性列求和

缺失值处理:

df.dropna()    # 丢弃处理
df.fillna(value=0)    # 填充处理,传入value填充值

函数的使用(重点):

def f(score):
	if score >= 90:
		return '优秀'
	elif score >= 60:
		return '及格'
	else:
		return '不及格'
		
df['数学分类'] = df['math'].map(f)     # 对一列进行操作并生成新的一列

df['总分'] = df.apply(lambda x: x.chinese+x.math+x.english, axis=1)    # 对多列进行操作并生成新的一列

df.applymap(lambda x: str(x)+' * ')    # 对所有数据进行操作

将DataFrame数据转化成矩阵

df.as_matrix()

Pandas自带绘图:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(10, 4).cumsum(0), columns=['A', 'B', 'C', 'D'])    # 生成随机数据表格
df.plot()    # pandas绘制线性图
plt.show()    # 借助matplotlib弹窗显示

df = pd.DataFrame(np.random.randint(10, 50, (3, 4)), columns=['A', 'B', 'C', 'D'])    # 生成随机数据表格
df.plot.bar()    # pandas绘制柱状图
plt.show()

df = pd.DataFrame(np.random.randn(100, 4), columns=['A', 'B', 'C', 'D'])    # 生成随机数据表格
df.hist()    # pandas绘制直方图
plt.show()
  • 9
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值