pandas处理df函数及plt绘图函数(作业总结笔记待补充...)

2023-11-06

1.读取csv文件
data=pd.read_csv('data.csv',encoding = "utf-8",header = 0,names = range(0,50),index_col=0)

header = 0是默认情况(即不标明,默认就是header = 0),表示以数据的第一行为列索引。
encoding = "utf-8"表明以utf-8为编码规则。
names = range(0,50))表示以[0…49]为列索引的名字
index_col=0表示以原有数据的第一列(索引为0)当作行索引。

2.处理NAN缺失值函数
df.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

value为填充值;
axis: {0 or ‘index’, 1 or ‘columns’}
例:用均值填充NAN:

data.fillna(data.mean(),inplace=True)
3.获取指定几列
data1=data[['列名1','列名2','列名3']]
4.判断是否存在缺失值函数
data.isnull()
5.获取描述值(count,mean,std,max,min等)
data.describe()
6.解决图形中文无法显示问题
plt.rcParams['font.sans-serif']=['SimHei']   # 用黑体显示中文
plt.rcParams['axes.unicode_minus']=False #优化坐标轴显示问题
7.绘制描述值散点图
import matplotlib.pyplot as plt
sta=data.describe()

plt.scatter(sta.loc['max'].index,sta.loc['max'],color='k',marker='v')
plt.scatter(sta.loc['min'].index,sta.loc['min'],color='k',marker='^')
plt.scatter(sta.loc['mean'].index,sta.loc['mean'],color='b',marker='+')
plt.scatter(sta.loc['50%'].index,sta.loc['50%'],color='b',marker='x')
plt.scatter(sta.loc['75%'].index,sta.loc['75%'],color='r',marker='v')
plt.scatter(sta.loc['25%'].index,sta.loc['25%'],color='r',marker='^')

plt.xticks([i for i in range(4)]) #防止右上角描述显示覆盖散点
plt.legend(['max','min','mean','median','75%','25%'])
plt.show()

在这里插入图片描述

8.增加一列并指定公式
data.loc[:,'增加列名']=data1['已存在列1']-data1['已存在列2']
9.获取pearson相关系数判断相关性
cor = data.corr()
10.增加x轴y轴标签
plt.xlabel('x')
plt.ylabel('y')
11.显示绘图标注
plt.legend(['玛卡巴卡'])
12.获取某列为指定值的数据集
data1=data[data['sex']==1]
13.获取某列均值
data.mean()
14.获取某列标准差
data.std()
15.随机拆分DataFrame为大小相等的df
import numpy as np
shuffled = data.sample(frac=1)
data4=np.array_split(shuffled, 2)
print(data4[1])
16.绘制阶梯图
plt.step(x, y)
17.绘制直方图
plt.hist(data,bins=25, density=True, stacked=True,color='y')
18.map函数使用
map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
19.plt设置图形名称
plt.title('玛卡巴卡图')
20.删除指定列、行
data=data.drop(columns=['列名1','列名1'])
data=data.drop(index=['行名1','行名1'])
21.输出数据前10行
data.head(10)
22.pd.set_option
# 使用pd.set_option设置只显示DataFrame最多10行样本,中间部分样本用省略号略过。
pd.set_option('display.max_rows',10)
data
23.删除名为‘#’的列
del df['#']
24.利用rename()修改列名,参数为字典
df.rename(columns=new_name,inplace='True')
25.查看某列数据的唯一值
# 法1
df['列名'].unique()
# 法2
df['列名'].value_counts()
26.选取指定类型值的列名
#标称型特征
nominal_array=(data.select_dtypes(include=['object'])).columns.tolist()

#数值型特征
numerical_array=(data.select_dtypes(exclude=['object'])).columns.tolist()

27.删除包含缺失值的样本
new_data=all_data.dropna(axis=1)
28.统计行数
#统计行数
row_num=all_data.shape[0]
29.获取各字段名称
#统计行数
col_array=all_data.columns.tolist()
30.plt绘制直方图
plt.rcParams['font.sans-serif']=['SimHei']   # 用黑体显示中文
plt.rcParams['axes.unicode_minus']=False #优化坐标轴显示问题

plt.hist(all_data['G1'], bins=40, facecolor="blue", edgecolor="black", alpha=0.7)
# 显示横轴标签
plt.xlabel("G1")
# 显示纵轴标签
plt.ylabel("成绩")
# 显示图标题
plt.title("G1成绩分布直方图")
plt.show()

在这里插入图片描述

31.truncate()选取df子集
truncate()常用参数有after和before,可传入标签。after之后的数据将全部删除,before之前的数据将全部删除。
32.dateutil.parser时间解析函数
from dateutil.parser import parse 
parse('2018-5-2')

datetime.datetime(2018, 5, 2, 0, 0)

parse('May 2, 2018 10:30 AM')

datetime.datetime(2018, 5, 2, 10, 30)

33.绘制df某一列数据饼图

当数据类别较少时可以使用饼图

data['列名'].value_counts().plot(kind='pie',fontsize=14,autopct='%.1f%%',labels=['指定显示类别名'])

遇到数据类别较多,各块的比例和各块的标注重叠情况,可以增加如下参数:

pctdistance参数调整各比例数据离饼图中心的距离,pctdistance=1.1;
更改figsize参数将图变大,figsize=(7,7);
设定legend参数为True将饼图中各块的标注用图例表示,legend=True。

34.绘制df某一列数据条形图

当数据类别较多时可以使用条形图

ax = data['列名'].value_counts().plot(kind='bar',figsize=(9,6),rot=0,color=['pink','lavenderblush','cyan','hotpink','red','darkcyan'])

可以使用patches查看plot的输出的一系列图块:

ax.patches

在这里插入图片描述
在每一个图块的部分中,存储着相应的数据,使用get_height方法获取这些数据。

ax.patches[0].get_height()

对应的图块在条形图中x轴上的位置,使用get_x。

ax.patches[0].get_x()
35.绘制df某一列数据直方图

对于连续型变量,可以使用直方图来查看数据的分布情况,这时需要设定参数kind为hist

data['列名'].plot(kind='hist')

默认画的是频数图,如果想画频率图,可以修改参数density为True。

data['列名'].plot(kind='hist',density=True)

也可以调整cumulative参数为True绘制累积直方图。

data['列名'].plot(kind='hist',cumulative=True)
36.绘制df某一列数据箱线图

也可以使用箱线图查看连续型变量的分布情况,需要设定kind参数为box

data['列名'].plot(kind='box')

可以通过sym参数修改异常值点的颜色和标记样式。例如,将颜色改为绿色(green),样式改为十字叉。

data['列名'].plot(kind='box',sym='g+')

可以通过修改箱线图的return_type参数为dict使得绘图函数返回一个字典,这可以让方便地从图中提取一些数据。

box=data['列名'].plot(kind='box',return_type='dict')
box

'boxes’对应的是箱体部分,'fliers’对应的是异常值点,'whiskers’对应的是两条须。

box['boxes']#查看箱体部分
box['boxes'][0]#提取列表第一个元素获得相应的图块
box['boxes'][0].get_xydata()#使用get_xydata获取其对应的数据点
box['fliers'][0].get_ydata()#使用get_ydata获取对应的异常值
37.使用iterrows循环df
for index, row in data.iterrows():
	print(row['列名1'])
38.更改列名
name_dict={}
data.rename(columns=name_dict,inplace=True)    # inplace参数判断是否在原数据上进行修改
39.查看数据基本信息
data.info()
40.计算缺失值比例
p = data.isnull().sum()/len(data)
# 转变为百分数
data.apply(lambda x: format(x, '.1%'))
# 保留两位小数
data.apply(lambda x: format(x, '.2f'))
41.数据类型转换
data['列名1']=data['列名1'].astype('float')
42.根据某一列降序排序
data.sort_values('列名1',ascending=False,inplace=True)
43.设置某一列为新索引
data.set_index('列名1',inplace=True)
44.绘制水平条形图
data.plot.barh(subplots=True,layout=(1,3),sharex=False,figsize=(7,4),legend=False,sharey=True)
# layout参数为显示图形为1行,3列
plt.tight_layout()   #调整子图间距
plt.show()
45.绘制饼图
data.plot.pie(autopct='%.1f%%',fontsize=10,ax=ax[1])
46.利用pyecharts中的Map()绘图
import pyecharts
# 调整配置项
import pyecharts.options as opts
# Map类用于绘制地图
from pyecharts.charts import Map

map_ = Map().add(series_name = " ", # 设置提示框标签
                 data_pair = data, # 输入数据(列表类型)
                 maptype = "world", # 设置地图类型为世界地图
                 is_map_symbol_show = False # 不显示标记点
                ) 
# 设置系列配置项
map_.set_series_opts(label_opts=opts.LabelOpts(is_show=False))  # 不显示国家(标签)名称 
# 设置全局配置项
map_.set_global_opts(title_opts = opts.TitleOpts(title=" "), # 设置图标题
                     # 设置视觉映射配置项
                     visualmap_opts = opts.VisualMapOpts(pieces=[ # 自定义分组的分点和颜色
                                                               {"min": 10000,"color":"#800000"}, # 栗色
                                                               {"min": 5000, "max": 9999, "color":"#B22222"}, # 耐火砖
                                                               {"min": 999, "max": 4999,"color":"#CD5C5C"}, # 印度红
                                                               {"min": 100, "max": 999, "color":"#BC8F8F"}, # 玫瑰棕色
                                                               {"max": 99, "color":"#FFE4E1"}, # 薄雾玫瑰
                                                              ], 
                     is_piecewise = True))  # 显示分段式图例
# 在notebook中进行渲染
map_.render_notebook()
47.利用pyecharts中的Pie()绘图
from pyecharts.charts import Pie

pie = Pie().add(" ", # 添加提示框标签
                data, # 输入数据
                radius = ["20%", "80%"],  # 设置内半径和外半径
                center = ["60%", "60%"],  # 设置圆心位置
                rosetype = "radius")   # 玫瑰图模式,通过半径区分数值大小,角度大小表示占比
                
#设置全局和系列配置项并绘制玫瑰图
pie.set_global_opts(title_opts = opts.TitleOpts(title=" ",  # 设置图标题
                                                pos_right = '40%'),  # 图标题的位置
                    legend_opts = opts.LegendOpts( # 设置图例
                                                orient='vertical', # 垂直放置图例
                                                pos_right="85%", # 设置图例位置
                                                pos_top="15%"))

pie.set_series_opts(label_opts = opts.LabelOpts(formatter="{b} : {d}%")) # 设置标签文字形式为(国家:占比(%))

# 在notebook中进行渲染     
pie.render_notebook()
48.随机选取5行索引
index=np.random.choice(data.index,size=5)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandas处理df函数及plt绘图函数(作业总结笔记待补充...) 的相关文章

随机推荐

  • 青少年CTFmisc-simpleness

    提示弱口令 爆破出hint的密码123456 hint zip里面解出两个文件 hint png hint rar 这个hint rar是伪加密 随便打开一个十六进制的编辑器 这里的24表示已加密 改成20表示未加密 打开hint txt
  • 8B10B编解码的Verilog实现

    此篇是我在学习中做的归纳与总结 其中如果存在版权或知识错误或问题请直接联系我 欢迎留言 PS 本着知识共享的原则 此篇博客可以转载 但请标明出处 目录 0 8B 10B编码 0 0 8B 10B编码原理 0 1 8B 10B编码的FPGA实
  • pycharm调整字母长度分割线为80

    写过 python 的同学都知道 python 代码默认一行的长度不超过 80 个字符 但是 pycharm 默认的分割线在第 120 个字符处 需要作如下修改 设置 File gt Settings gt Code Style gt Ri
  • JetBrains全家桶使用说明

    一 二 三 友情推荐 激活获取地址
  • 泰勒公式和二项式展开定理的共同点

    泰勒公式和二项式展开定理的共同点 对于f x 1 x n 采用泰勒展开法有 f x fk0 0 x 0 0 fk1 0 x 1 1 fk2 0 x 2 2 其中fk0 0 fk1 0 分别代表fk x 的k阶导数 并且传0代替k阶导数中的x
  • 保姆级教程:Linux和Windows下本地化部署Vicuna模型

    目录 文章摘要 一 Vicuna简介 1 Vicuna模型定义 2 Vicuna模型的应用场景 3 Vicuna模型的训练数据 4 Vicuna模型的版本 5 性能评估 二 linux 操作系统下部署 1 环境介绍 2 安装Python3
  • Windows 动态磁盘卷:简单卷、跨区卷 、带区卷 、镜像卷 、RAID5卷 相关配置操作

    Windows Server 2003 提供了新的磁盘管理方式 能够提高磁盘性能和容错能力 将基本磁盘升级为动态磁盘 能够更灵活分配和管理磁盘空间 能够配置各种磁盘阵列提高磁盘能力 动态磁盘与基本磁盘对比 一块基本磁盘只能包含4个分区 它们
  • C语言——malloc与free

    文章目录 1 malloc 1 1 size t 1 2 malloc可申请的字节数 1 2 1 整形常量溢出 1 3 malloc一维数组 1 4 calloc 2 free 1 malloc 在堆区申请一个指定大小 连续的空间并返回空间
  • 使用FTP(IOS FTP客户端开发教程)

    本文翻译自新近Wrox出版社出版的 由Peter van de Put所著的 Professional iOS Programming 该书题材比较新颖 结构合理 是一本不错的IOS开发书籍 本文译自该书第八章 Using FTP 本文开放
  • C语言中的移位运算

    左移运算 对于一个位表示为的操作数 x x lt lt k 会生成一个指 其位表达式为 也就是说将x右边的w k位向左移动k位 丢弃最高的k位 并在右端补k个0 例如 操作数 x 位表达式为 01010101 x lt lt 3 将得到 1
  • 完成人机猜拳(0:石头;1:剪刀;2:布)游戏

    完成人机猜拳 0 石头 1 剪刀 2 布 游戏 详细代码见链接 共同学习 加油 文末有知识点分析 文章所使用的知识点if lese语句 if 条件1 print 条件为1 elif 条件2 print 条件为2 elif 条件3 print
  • 014人脸识别打卡签到系统pyqt界面

    目标检测一般是yolov3 yolov4 yolov5 yolox PSPnet faster rcnn SDD等 教学视频 银色子弹zg的个人空间 银色子弹zg个人主页 哔哩哔哩视频 效果图如下 完整的代码文件 其中dataset文件下是
  • vue2-slot是什么?

    1 slot是什么 在html中slot元素 作为web Compoents技术套件的一部分 是Web组件内的一个占位符 该占位符可以在后期使用自己的标记语言填充 举例 template不会展示到页面中 需要先获取它的引用 然后添加到DOM
  • swagger快速升级方案

    背景 在使用SpringBoot 2 6以前去创建API文档工具一般会采用SpringFox提供的Swagger库 但是由于SpringBoot版本的不断升级和SpringFox摆烂不更新 导致了SpringBoot2 6之后的项目无法使用
  • 2016年第七届蓝桥杯JavaB组省赛 刷题笔记、思路及答案

    前言 本人是大二 二本 计算机系学生 已经报名了下一届的蓝桥杯省赛 整个寒假在家 这次的寒假挺久的哈哈 在b站学习了一些算法 现在会bfs走迷宫 dfs相关算法 递归回溯 常见排列算法 但是还是有很多算法都还不太熟悉 做起题来真是费劲 之前
  • 高尔夫常用英语

    高尔夫英语 Address 瞄球 击球准备动作 Advice 对别人的打法或其他技术上的事项提出建议 Again 重新击球 Play again 的缩写 Against logy 加一杆赛 Against par 标准击杆赛 以规定击球次数
  • Nginx----健康检查----Nginx upstream_check_module模块实现后端节点健康检查功能

    实现环境 CentOS7 6 Nginx编译安装带Nginx upstream check module模块 IP 192 168 10 101 CentOS7 6 Nginx网站1 CentOS7 6 Nginx网站2 实验所需软件包 I
  • 时序逻辑电路的设计(二) -- 篮球比赛24秒倒计时电路(附Multisim)

    一 实验任务及要求 1 设计要求 篮球比赛中 进攻一方取得球权后双方开始比赛 若24秒到 该进攻一方仍然没有投球时 需要交换发球权 本实验要求设计一个24秒违例计时器 倒计时方式 当计时24秒时间到 用一个红色指示灯亮表示 指示灯持续点亮5
  • python glob的安装和使用

    基本概念 glob是python自己带的一个文件操作相关模块 用它可以查找符合自己目的的文件 类似于Windows下的文件搜索 支持通配符操作 这三个通配符 代表0个或多个字符 代表一个字符 匹配指定范围内的字符 如 0 9 匹配数字 安装
  • pandas处理df函数及plt绘图函数(作业总结笔记待补充...)

    1 读取csv文件 data pd read csv data csv encoding utf 8 header 0 names range 0 50 index col 0 header 0是默认情况 即不标明 默认就是header 0