动手学数据分析 Task 1

2023-11-02

一、数据加载

项目源数据请见 kaggle
1.对于csv中的数据,pandas库提供两种方法来读取,分别为:read_csv()和read_table()。二者的区别为:read_table()以制表符 \t 作为数据的标志,也就是以行为单位进行存储;而read_csv()则是按csv file 中的每一格为单位进行存储。
读取数据时最好使用绝对地址。如果要用相对地址却又不知道当前工作目录,则可以用下面的方法获得:

import os
print(os.getcwd());

2.有时源数据较大,则可以通过逐块读取的方法将数据分类。主要方法有以下两种:
(1)读取文件中前部分
通过nrows参数,来设置读取文件的前多少行,nrows是一个大于等于0的整数。

data = pd.read_csv("data.csv",nrows=5)

(2)逐块读取文件

#设置chunksize参数,来控制每次迭代数据的大小
chunker = pd.read_csv("data.csv",chunksize=5)
for piece in chunker:
	print(type(piece))
    #<class 'pandas.core.frame.DataFrame'>
    print(len(piece))
    #5

3.初步观察数据。常用的函数有以下几种:

df.info()      #返回每列非空数据的个数以及数据类型
df.head(x)     #返回前x行数据,x为正整数
df.tail(x)     #返回倒数前x行数据,x为正整数
df.describe()  #返回每列数据的数量、均值、方差、最大值、最小值、分位数

二、Pandas基础

最常用的查询方法有loc和iloc。loc通过行索引 “Index” 中的具体值来取行数据;iloc中的i意为integer,它通过行号来取行数据,因此iloc的参数只能是非负整数或者非负区间。
在下面这个例子中,我们创建了一个midage Dataframe,然后从这个表中取出了索引为100的行和绝对位置排在第100位的行。

midage = df[(df["Age"]>10)& (df["Age"]<50)]
print(midage.loc[100])
#######
PassengerId                        101
Survived                             0
Pclass                               3
Name           Petranec, Miss. Matilda
Sex                             female
Age                                 28
SibSp                                0
Parch                                0
Ticket                          349245
Fare                            7.8958
Cabin                              NaN
Embarked                             S
#######
print(midage.iloc[100])
#######
PassengerId                                  150
Survived                                       0
Pclass                                         2
Name           Byles, Rev. Thomas Roussel Davids
Sex                                         male
Age                                           42
SibSp                                          0
Parch                                          0
Ticket                                    244310
Fare                                          13
Cabin                                        NaN
Embarked                                       S
#######

三、探索性数据分析

1、排序
可以使用sort_index()和sort_values() 。

frame = pd.DataFrame(np.random.rand(12).reshape((3, 4)),  index=['2', '1','3'],  columns=['d', 'a', 'b', 'c']) 
print(frame.sort_index(axis=0,ascending=TRUE)   #按行索引升序排序
print(frame.sort_index(axis=1,ascending=FALSE)  #按列索引降序排序
print(frame.sort_values(by=['a','d'],ascending=TRUE) #按a列和d列的值升序排列。这里先按a列排,遇到a列相同,再按d列排

2、算术运算
两个DataFrame相加后,会返回一个新的DataFrame,对应的行和列的值会相加,没有对应的会变成空值 NaN。

frame1_a = pd.DataFrame(np.arange(9.).reshape(3, 3), columns=['a', 'b', 'c'],   index=['one', 'two', 'three']) 
frame1_b = pd.DataFrame(np.arange(12.).reshape(4, 3), columns=['a', 'e', 'c'], index=['first', 'one', 'two', 'second'])
print(frame1_a )
print(frame1_b )
print(frame1_a+frame1_b )

###
result:
         a    b    c
one    0.0  1.0  2.0
two    3.0  4.0  5.0
three  6.0  7.0  8.0
          a     e     c
first   0.0   1.0   2.0
one     3.0   4.0   5.0
two     6.0   7.0   8.0
second  9.0  10.0  11.0
          a   b     c   e
first   NaN NaN   NaN NaN
one     3.0 NaN   7.0 NaN
second  NaN NaN   NaN NaN
three   NaN NaN   NaN NaN
two     9.0 NaN  13.0 NaN

3、筛选出姓名中含有‘Mr.’的数据

#使用str.contains()
print(df[df['Name'].str.contains(r'Mr\.')]['Name'])

#使用正则表达式
print(df['Name'].str.extract('(\D*)Mr\.(\D*)'))

4、查找age列的缺失值

print(df[df['Age'].isnull().values==True])

5、查看95%分位数

print(df[['Age','Fare']].quantile(0.95))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动手学数据分析 Task 1 的相关文章

  • 无法“安装”plpython3u - postgresql

    我正在尝试在 postgresql 中使用 python 语言 像这样的事情 create or replace function test a integer returns integer as if a 2 0 return even
  • Django 代理模型的继承和多态性

    我正在开发一个我没有启动的 Django 项目 我面临着一个问题遗产 我有一个大模型 在示例中简化 称为MyModel这应该代表不同种类的物品 的所有实例对象MyModel应该具有相同的字段 但方法的行为根据项目类型的不同而有很大差异 到目
  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • 将数据从 python pandas 数据框导出或写入 MS Access 表

    我正在尝试将数据从 python pandas 数据框导出到现有的 MS Access 表 我想用已更新的数据替换 MS Access 表 在 python 中 我尝试使用 pandas to sql 但收到错误消息 我觉得很奇怪 使用 p
  • Python - StatsModels、OLS 置信区间

    在 Statsmodels 中 我可以使用以下方法拟合我的模型 import statsmodels api as sm X np array 22000 13400 47600 7400 12000 32000 28000 31000 6
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • 如何使用 OpencV 从 Firebase 读取图像?

    有没有使用 OpenCV 从 Firebase 读取图像的想法 或者我必须先下载图片 然后从本地文件夹执行 cv imread 功能 有什么办法我可以使用cv imread link of picture from firebase 您可以
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • 如何使用Python创建历史时间线

    So I ve seen a few answers on here that helped a bit but my dataset is larger than the ones that have been answered prev
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 解释 Python 中的数字范围

    在 Pylons Web 应用程序中 我需要获取一个字符串 例如 关于如何做到这一点有什么建议吗 我是 Python 新手 我还没有找到任何可以帮助解决此类问题的东西 该列表将是 1 2 3 45 46 48 49 50 51 77 使用
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip

随机推荐

  • 图 深度优先遍历 广度优先遍历 非递归遍历 图解算法过程

    图的邻接矩阵表示 通常图的表示有两种方法 邻接矩阵 邻接表 本文用邻接矩阵实现 一是代码量更少 二是代码风格也更贴近C语言 但不论是图的哪种实现方式 其基本的实现思想是不变的 1 节点的信息 我们用一维数组a n 来存储 假设图共有n个节点
  • QQ小程序广告代码

    qml内代码
  • elasticsearch查看分词结果

    第一种情况 查看任意一段文本 能分成哪些词汇 http localhost 9200 analyze POST 第二种情况 查看已经入库的数据 分词情况 http localhost 9200 index type id termvecto
  • keil中出现Undefined symbol 等问题解决办法

    在keil中仿照别人的程序写了RCC初始化的程序 编译后出现以下问题 obj pro1 axf Error L6218E Undefined symbol FLASH PrefetchBufferCmd referred from main
  • C++动态内存管理——智能指针

    智能指针 1 什么是智能指针 智能指针 smart pointer 是存储指向动态分配 堆 对象指针的类 用于生存期控制 能够确保自动正确的销毁动态分配的对象 防止内存泄露 利用自动调用类的析构函数来释放内存 实现技术是使用引用计数 sha
  • C++——WebServer服务器项目

    项目场景 C WebServer服务器编程 项目搭建 1 配置虚拟机 下载XShell Xftp以及windows版本的VScode 2 安装SSH sudo apt install openssh server 3 在XShell中配置会
  • Parcel打包React

    Parcel打包React Parcel介绍 Parcel 官网 parceljs org 官网上的介绍 极速零配置Web应用打包工具 什么 对的 你没看错 它标称的零配置打包 这个打包工具其实在一些大厂 开发 Electron 和 Rea
  • PAT C入门题目-7-18 出租车计价 (15 分)

    7 18 出租车计价 15 分 本题要求根据某城市普通出租车收费标准编写程序进行车费计算 具体标准如下 起步里程为3公里 起步费10元 超起步里程后10公里内 每公里2元 超过10公里以上的部分加收50 的回空补贴费 即每公里3元 营运过程
  • MAC安装Securecrt

    文章目录 一 下载地址 二 安装软件 1 下载的文件有2个 一个是安装包 一个是安装文件 2 打开安装包以后 将安装程序拖到应用程序中 三 执行安装文件 1 执行安装 2 错误解决 四 安装软件 1 打开SecureCTR后 选择Enter
  • 关于Swagger中访问不了文档页面

    因为在SpringBoot启动类中 没有加上 EnableSwagger2WebMvc注解 这个注解的作用是启用swagger对应用程序暴露的API端点进行文档化 个人推断和拦截器拦截请求有关 解决办法就是加 EnableSwagger2W
  • 计算机精英ACM fellow和ACM杰出科学家,各校校友统计

    首先谢谢东南 大学网友青山人的统计工作 http bbs netbig com thread 2675926 1 1 html 人数相同 按照学校名称拼音排序 先统计最高荣誉 ACM Fellow 1 的精英 中国科大 81硕 李 凯 19
  • Spring面试问答Top 25

    本人收集了一些在大家在面试时被经常问及的关于Spring的主要问题 这些问题有可能在你下次面试时就会被问到 对于本文中未提及的Spring其他模块 我会单独分享面试的问题和答案 欢迎大家向我推荐你在面试过程中遇到关于Spring的问题 我会
  • APP 性能测试工具

    一 APP 自动化测试工具Appium 官网 http appium io GitHub 地址 https github com appium appium 介绍 Appium 是一个开源的 跨平台的自动化测试工具 支持自动化 iOS An
  • 使用adb 命令(atrace)抓起systrace的方法。【转】

    本文转载自 https www cnblogs com liuliu word p 9963017 html adb shell atrace c b 10240 async start z gfx 1 执行查看adb shell atra
  • 【Python案例】一键自动抠图生成证件照

    0 效果与体验 不想去照相馆 担心肖像隐私被第三方获取 不会抠图 本文实现基于人工智能的一键自动抠图生成证件照 在进入正文之前 先看最终效果 为了让读者快速体验 我写了个小程序 证照工具箱 可打开直接体验 1 人脸检测 在制作证件照时 首选
  • Windows下用pandoc将LaTex转成Word——使用错误总结

    以下是废话阶段 一般期刊投稿都是latex版本啊 奈何有时候机缘总是那么巧合 假如需要word版本呢 科研的乐趣 不就是发现问题 解决问题嘛 那么 就开始愉快地解决问题吧 以下是正片 首先 从无到有的过程当然是先借鉴别人的东西啦 所以 我主
  • idea自动生成类和方法注释

    idea自动生成类和方法注释 一 类注释 方式一 打开settings gt File and COde Templates 选中Files gt Class 添加类注释信息 新建一个类 就会看到类上会自动添加注释 方式二 通过设置文件头来
  • 超5星难度【微软Core allocation】Coding赛题 - 解题思路&优秀代码分享,邀你来“找茬儿”

    6月23日英雄会平台发布了一道难度为超5星的微软比赛题目 截止活动结束共有300多名编程爱好者参与线上答题 而最终通过者仅有7人 通过率仅为2 为什么成绩如此出人意料 是因为原题的英文描述难以理解 还是题目本身的难度太高让很多人望而生畏知难
  • Web前端简易复习手册(一)

    Web前端复习题 一 1 创建js对象的几种方式 2 如何访问对象属性和方法 3 解构是什么 4 什么是原型 原型链 5 基于原型的继承两种方式 6 实例成员 7 原型成员 8 类成员 9 Rest参数含义 10 简述arguments对象
  • 动手学数据分析 Task 1

    动手学数据分析 Task 1 一 数据加载 二 Pandas基础 三 探索性数据分析 一 数据加载 项目源数据请见 kaggle 1 对于csv中的数据 pandas库提供两种方法来读取 分别为 read csv 和read table 二