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

使用pip安装Pandas:

pip install pandas

导入 Pandas包并起别名pd:

import Pandas as pd

创建DataFrame型数据

scores = {
    '姓名' : ['johe', 'mike', 'tom', 'jeck'],
    '语文' : [88, 83, 90, 78],
    '数学' : [96, 88, 86, 90],
    '英语' : [85, 80, 90, 75]
}
df = pd.DataFrame(scores)

读取csv文件(理解为表格文件,内容为纯文本,有一定的格式):

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

操作DataFrame数据

df.head(i)    # 获取表头和表格前i行,默认5行
df.tail(i)    # 获取表头和表格最后i行
df.columns    # 获取表头所有列名

df.index    # 获取索引
df.loc[i]    # 根据索引i查找的值
df.iloc[i]    # 实实在在的第i行,而不是根据索引查找
df.ix[i]    # 相当于兼并loc和iloc功能
df.ix[:i]    # 可以通过切片取前i行,iloc也一样

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

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

df.sort_values(['数学'])    # 排序:按照数学成绩升序排序,还可以传入多个参数进行排序

DataFrame转化成数组:

df.values    # 全部转化
df.数学.values    # 将数学那一列转化为数组

函数的使用(重点):

def f(score):
    if score >= 90:
        return '优秀'
    elif score >= 60:
        return '及格'
    else:
        return '不及格'
df['数学分类'] = df.数学.map(f)     # 对一列进行操作并生成新的一列
df['总分'] = df.apply(lambda x: x.语文+x.数学+x.英语, axis=1)    # 对多列进行操作并生成新的一列
df.applymap(lambda x: str(x)+' * ')    # 对所有数据进行操作

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()

猜你喜欢

转载自blog.csdn.net/qq_37509235/article/details/80543904