python csv数据集处理

news2025/1/15 8:10:25

目录

一:数据集准备

二:加载文件

三:查看DataFrame的头部和尾部数据 ,shape

四:统计摘要

五:获取数据

六:缺失值处理


一:数据集准备

可以新建txt,复制下面内容,并修改后缀为csv,放置于pycharm编辑器

搞笑镜头,拥抱镜头,打斗镜头,label
45,2,9,1
21,17,5,1
54,9,11,1
39,0,,1
5,2,57,2
3,2,65,2
6,4,21,2
7,46,4,3
9,39,8,3
9,38,17,3
2,3,55,2

二:加载文件

DataFrame数据结构 ,结果输出

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df, type(df))
     a   b     c  label
0   45   2   9.0      1
1   21  17   5.0      1
2   54   9  11.0      1
3   39   0   NaN      1
4    5   2  57.0      2
5    3   2  65.0      2
6    6   4  21.0      2
7    7  46   4.0      3
8    9  39   8.0      3
9    9  38  17.0      3
10   2   3  55.0      2 <class 'pandas.core.frame.DataFrame'>

三:查看DataFrame的头部和尾部数据 ,shape

查看头部  head

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.head())
    a   b     c  label
0  45   2   9.0      1
1  21  17   5.0      1
2  54   9  11.0      1
3  39   0   NaN      1
4   5   2  57.0      2

查看尾部   tail

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.tail())
    a   b     c  label
6   6   4  21.0      2
7   7  46   4.0      3
8   9  39   8.0      3
9   9  38  17.0      3
10  2   3  55.0      2

shape,查看规格

如下输出结果为 11行 4列

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.shape)
(11, 4)

四:统计摘要

求平均、最大、最小 

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.describe())

               a          b          c      label
count  11.000000  11.000000  10.000000  11.000000
mean   18.181818  14.727273  25.200000   1.909091
std    18.845786  17.613012  24.003703   0.831209
min     2.000000   0.000000   4.000000   1.000000
25%     5.500000   2.000000   8.250000   1.000000
50%     9.000000   4.000000  14.000000   2.000000
75%    30.000000  27.500000  46.500000   2.500000
max    54.000000  46.000000  65.000000   3.000000

五:获取数据

如下示例,获取第一列    列索引

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# print(df.describe())
print(df['a'])  # 获取列 列索引--第一列
0     45
1     21
2     54
3     39
4      5
5      3
6      6
7      7
8      9
9      9
10     2
Name: a, dtype: int64

如下示例,获取前三行     行切片

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# print(df.describe())
# print(df['a'])  # 获取列 列索引--第一列
print(df[0:3])    # 获取行 行切片--前三行
    a   b     c  label
0  45   2   9.0      1
1  21  17   5.0      1
2  54   9  11.0      1

获取某行

 iloc[2]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# print(df.describe())
# print(df['a'])  # 获取列 列索引--第一列
# print(df[0:3])  # 获取行 行切片--前三行
print(df.iloc[2])  # 获取行
a        54.0
b         9.0
c        11.0
label     1.0
Name: 2, dtype: float64

获取前3行 前2列 

iloc[:3,:2]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# print(df.describe())
# print(df['a'])  # 获取列 列索引--第一列
# print(df[0:3])  # 获取行 行切片--前三行
# print(df.iloc[2])  # 获取行
print(df.iloc[:3, :2])  # 获取前3行前2列

通过列表索引项,获取数据  

  iloc[[2, 5, 6], [0, 3]]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# print(df.describe())
print(df.iloc[[2, 5, 6], [0, 3]])  # 通过列表索引项
    a  label
2  54      1
5   3      2
6   6      2

六:缺失值处理

具体要求

1.找到缺失值

2.进行填充 

3.超过1/3数据没有填写,这一列数据不具有研究性意义,直接剔除

1.找到缺失值 

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# 找到缺失值
print(df.isnull().sum())

如下结果,c处存在有缺失值,已被找到 

a        0
b        0
c        1
label    0
dtype: int64

2.进行填充 

均值填充/中位数/众数

inplace = True 可以替换掉原来的数据 

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# 找到缺失值
# print(df.isnull().sum())
# 均值填充
df['c'].fillna(df.c.mean(), inplace=True)
print(df)

如下结果:缺失值已被均值填充 

     a   b     c  label
0   45   2   9.0      1
1   21  17   5.0      1
2   54   9  11.0      1
3   39   0  25.2      1
4    5   2  57.0      2
5    3   2  65.0      2
6    6   4  21.0      2
7    7  46   4.0      3
8    9  39   8.0      3
9    9  38  17.0      3
10   2   3  55.0      2

3.超过1/3数据没有填写,这一列数据不具有研究性意义,直接剔除 

行列选择  loc

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# 找到缺失值
# print(df.isnull().sum())
# 均值填充
# df['c'].fillna(df.c.mean(), inplace=True)
# print(df)
# 不具有代表性数据,剔除
# 行列选择
print(df.loc[:, ['a', 'b']])
     a   b
0   45   2
1   21  17
2   54   9
3   39   0
4    5   2
5    3   2
6    6   4
7    7  46
8    9  39
9    9  38
10   2   3

值选择  at

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# 找到缺失值
# print(df.isnull().sum())
# 均值填充
# df['c'].fillna(df.c.mean(), inplace=True)
# print(df)
# 不具有代表性数据,剔除
# # 行列选择
# print(df.loc[:, ['a', 'b']])
# 值选择
print(df.at[1, 'b'])

输出值:17 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/94125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

登录处cookie验证逻辑漏洞——以熊海CMS为例

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是登录处cookie验证逻辑漏洞。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1a;严禁对未…

室内定位:物联网时代发展的必然需求

室内定位是指在室内环境中实现位置定位&#xff0c;主要采用无线通讯、基站定位、惯导定位等多种技术集成形成一套室内位置定位体系&#xff0c;从而实现人员、物体等在室内空间中的位置监控。 物联网时代&#xff0c;位置服务已成为人们工作生活必不可少的服务之一。蓝牙、5G、…

交换机和路由器

一台交换机有很多个端口&#xff0c;这些端口有各自的编号 计算机的网卡通过网线连接到交换机的网口上 在交换机中&#xff0c;有一张端口和MAC地址的映射表&#xff0c;称为MAC地址表&#xff0c;交换机维护这张表 交换机里的主机都是处在同一个子网里 不同子网之间是不能直…

一起Talk Android吧(第四百四十三回:UI控件之NumberPicker)

文章目录概念介绍使用方法内容总结各位看官们大家好&#xff0c;上一回中咱们说的例子是"UI控件之下拉列表:Spinner",这一回中说的例子是" UI控件之NumberPicker"。闲话休提&#xff0c;言归正转&#xff0c;让我们一起Talk Android吧&#xff01;概念介绍…

Shiro框架入门

概述 官网介绍如下&#xff1a; Apache Shiro™ is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro’s easy-to-understand API, you can quickly and easily secure a…

[C/C++/初学者]万年历(输入年份和月份,输出对应的日历表——数组)

//本代码不考虑历法问题&#xff0c;设定1年1月1日为星期一。 //以星期日为始。 //完整代码在最下方。 根据题意&#xff0c;我们首先需要接收年份的月份的数据。 printf("请输入年份&#xff1a;");scanf("%d",&Year);printf("请输入月份&#x…

Unity Addressables资源管理 资源组设置

Addressables资源管理总目录 1.Schema 翻译为&#xff1a;模式&#xff0c;计划。 目前理解为每个组的打包设置。 默认设置是只有两个Content Update Restriciton 和Content Packing& Loading 2.Content Update Restriction 内容更新方式 Can Change Post Release&…

Qt扫盲-QToolBox理论总结

QToolBox理论总结1. 简述2. 常用功能3. 信号&用途1. 简述 QToolBox 是一个类似前端的抽屉容器&#xff0c;它有一组选项卡&#xff0c;每个选项卡会在其下方自带有一个QWidget 来会显示一些内容。每个选项卡在选项卡列表中都有一个索引位置。这个选项卡的位置也是有顺序的…

Kerberos的概述和认证原理

什么是 Kerberos ​ Kerberos 是一种计算机网络认证协议&#xff0c;用来在非安全网络中&#xff0c;对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构&#xff0c;并且能够进行相互认证&#xff…

国产三维gis软件的行业赋能情况

自二十世纪六十年代世上第一个GIS——加拿大地理信息系统&#xff08;CGIS&#xff09;面世至今&#xff0c;短短的40多年&#xff0c;GIS技术性从咿呀学语迈向了健康成长&#xff0c;在土地规划、电力工程、电信网、大城市管道网、水利工程、消防安全、交通出行及其城乡规划等…

Webug靶场搭建详解

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是Webug靶场搭建详解。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1a;严禁对未授权设…

C++ Reference: Standard C++ Library reference: Containers: map: map: find

C官网参考链接&#xff1a;https://cplusplus.com/reference/map/map/find/ 公有成员函数 <map> std::map::find iterator find (const key_type& k); const_iterator find (const key_type& k) const;获取指向元素的iterator 在容器中搜索键值等于k的元素&…

助力软件供应链安全 蚂蚁集团多项产品入选信通院优秀案例

近日&#xff0c;由中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;主办&#xff0c;中国通信标准化协会云计算标准和开源推进委员会承办的3SCON软件供应链安全会议以线上直播形式召开。会上主办方发布了首期《软件供应链厂商和产品名录》&#xff0c;蚂蚁集…

mongoose 的打印改造

若要 mongoose.c 里的打印输出则需要在 main 函数里显式调用 mg_log_set(level)&#xff0c;参数是打印等级&#xff0c;如&#xff1a; mg_log_set(MG_LL_INFO);这样设置之后&#xff0c;程序执行起来就可以实现打印输出了&#xff0c;但这个输出着实让人看得不太明白&#x…

基于Python多元线性回归、机器学习、深度学习在近红外光谱分析中的实践应用

【详情链接】&#xff1a;基于Python多元线性回归、机器学习、深度学习在近红外光谱分析中的实践应用https://mp.weixin.qq.com/s?__bizMzU5NTkyMzcxNw&mid2247527433&idx2&sn4a73e8451b57819dce1b660b55f7befa&chksmfe68aa63c91f2375d992e418ea6006ab8ea835e…

[附源码]Nodejs计算机毕业设计基于的企业人事管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

使用Springboot框架手撸一个安全、可靠的本地缓存工具

前言&#x1f353; 在实现本地缓存的时候&#xff0c;我们经常使用线程安全的ConcurrentHashMap来暂存数据&#xff0c;然后加上SpringBoot自带的Scheduled定时刷新缓存。虽然这样可以实现本地缓存&#xff0c;但既不优雅也不安全&#xff0c;一个好的本地缓存工具应该是这样搭…

python 之 numpy图片处理 矩阵操作

目录 一&#xff1a;垂直方向翻转(行逆序) 二&#xff1a;水平方向翻转(列逆序) 三&#xff1a;垂直、水平方向翻转(行、列逆序) 四&#xff1a;调整亮度&#xff0c;变明亮*2.0 五&#xff1a;调整亮度&#xff0c;变暗 六&#xff1a;垂直方向裁剪 七&#xff1a;水平…

ESP32 ESP-IDF LVGL8 显示中文

陈拓 2022/12/15-2022/12/16 1. 开发环境 《ESP32 ESP-IDF LVGL8.3.3移植》 ESP32 ESP-IDF LVGL8.3.3移植_晨之清风的博客-CSDN博客ESP32 ESP-IDF LVGL8.3.3移植。https://blog.csdn.net/chentuo2000/article/details/128269394?spm1001.2014.3001.5501 2. 使用LVGL自带的中…

C# 创建WebService接口并连接

创建WebService项目 首先安装下.NET Framework4.6.2-4.7.1开发工具。 然后就是新建 ASP.NET Web应用程序 项目。 输入项目名称WebServiceDemo 选择空&#xff0c;然后先去掉HTTPS配置。 项目创建好之后&#xff0c;开始添加asmx文件. 添加好之后在添加一个有参数的名为Hel…