python库之pandas基本操作

Pandas

本文介绍pandas基本操作和数据结构

数据结构
  • DataFrame :一种带标签的二维对象
  • Series:不同类型元素组成的一维数组
DataFrame基本操作

1 读取文本操作

%python
import numpy as np
import pandas as pd
pd.read_csv(data.csv) #导入CSV数据
pd.read_table(1.txt)#从限定分隔符的文本中导入数据
pd.read_excel(data.xls)#从excle中导入数据
pd.read_json(json_string)#从json格式的字符串导入数据
pd.read_html(url)#解析url,字符串,html文件抽取其中的tables表格
pd.DataFrame(dict)#从字典对象导入数据,Key是列名,Value是数据

2 导出文本操作

%python
import numpy as np
import pandas as pd
pd.to_csv(1.csv) #导出文件到CSV文件中
pd.to_excel(2.csv) #导出文件到excel中
pd.to_sql(tablename,connection_object) #导出文件到SQL表
pd.to_json(filename)#以json格式导出数据到文本文件中

3 创建测试

%python
#定义一个索引列,以20180101为基点产生时间索引序列
dates = pd.date_range('20180101',periods=10)
# DataFrame生成函数,行索引,列自定义
data = pd.DataFrame(np.random.randn(10,5),index=dates,columns=list('ABCDE'))
print(data) #输出整个表
print(data.values) #输出表的值
print(data.shape)#输出表的形状

4 DataFrame常用函数

%python
#打印指定A列
print(df.A)
#输出前n行数据
print(df.head(n))
#输出后n行数据
print(df.tail(n)) 
#输出详细信息
print(data.describe())
# 按列索引排序
print(data.sort_index(axis=1,ascending=Fales))
# 按行索引排序
print(data.sort_index(axis=0,ascending=False))
# 按给定值排序
print(data.sort_values(by='A')))
#输出第index行,第index2行
print (data.loc['index1':'index2'])
#输出B,C两行。
print(data.loc[:,['B','C']])
案例引入

针对我们班期末成绩的操作

  • 任务1:实现排序
  • 任务2:实现合并
  • 任务3:求平均值
  • 任务4:数据展现
    注:为了考虑表格展现的客观性,删除了有些不需要的成绩列
    1 数据导入
%python
# -*- coding=utf-8 -*-
import numpy as np
import pandas as pd
df1 = pd.read_excel("16软工.xls")
#给读取的df1 设置列名
df1.columns = ["序号","学号","姓名","A","B","C","E","F","G","H","I","J","K","L","O","P","Q","R","S","T","X","学分绩点"]
#删除不需要的列
df1.drop(["序号","学号","P","Q","R","G","A","B","F","C","E","H"],axis=1,inplace=True)
#按学分绩点排序
df1 = df1.sort_values("学分绩点",ascending=False)
#删除空白列
df1 = df1.dropna()
#设置索引列
df1.index=(range(1,len(df1)+1))
#打印
print(df1)

内容如下:
这里写图片描述
2 两表合并求平均

%python
df = pd.read_excel('16软工(1).xls')
#设置列名
df.columns = ["序号","学号","姓名","A","B","C","E","F","G","H","I","J","K","L","O","P","Q","R","S","T","X","学分绩点"]
#删除多余列名
df.drop(["序号","学号","P","Q","R","G","A","B","F","C","E","H"],axis=1,inplace=True)
df.index = (range(1,len(df)+1))
#删除空白行
df = df.dropna()
df.index = (range(1,len(df)+1))
# 按姓名合并两表
df = pd.merge(df,df1,on="姓名")
#筛选有价值的信息 (找有关学分绩点的列)
df = df[['姓名','T_x','T_y']]
#添加一列平均值
df['Avg'] = df.mean(axis=1)
# 按平均值降序排序
df = df.sort_values('Avg',ascending=False)
#设置行索引,从1开始
df.index=(range(1,len(df)+1))
print(df)

这里写图片描述
3 画出分数的折线图 排序后

%python
# 删除姓名那行
df1 = df.drop(['姓名'],axis=1,inplace=True)
# 展现的数值,列名,索引
df1 = 
pd.DataFrame(df.values,columns=['T_x','T_y','Avg'],index=np.arange(1,58))
#展现
df1.plot()

这里写图片描述
4 画折线图,未排序
这里写图片描述

总结

本文主要将pandas的基本应用,涉及到pandas的read_excel()函数,dropna()函数,pd.merge(表一,表二,按**合并)函数,sort_value(值,ascending=False) 按值排序,mean()求平均值,画图函数plot。

———–写在后面:本人小白,还在学习中,有错误的地方,望大佬提出。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值