Python Pandas库 初步使用
作业要求:用pandas+numpy读取UCI iris数据集中鸢尾花的萼片、花瓣长度数据,进行数据清理,去重,排序,并求出和、累积和、均值、标准差、方差、最大值、最小值
学习网站:Runoob
Pandas官方文档:pandas-docs
总共用时:1.5小时 (代码在最后面)
学习内容:pandas库基础

踩过的坑
1、关于Python pandas模块输出每行中间省略号问题
关于Python pandas模块输出每行中间省略号问题 - James·Sean - 博客园 (cnblogs.com)
pd.set_option('display.width', None)
pd.set_option('display.max_rows', None)
我的代码
work.py
import pandas as pd
import numpy as np
import requests
import sys
import os
path = os.path.dirname(__file__)
# ^ 阿里云OSS读取数据集文件
content = requests.get("https://xiaonenglife.oss-cn-hangzhou.aliyuncs.com/static/cnblogs/2020_3/iris.data")
if content.status_code != 200:
print("不成功")
sys.exit() # ^ 退出程序
f = open(path+'iris.csv', 'w')
f.write(content.text)
f.close()
df = pd.read_csv(path+'iris.csv', names=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class'])
print(df)
print('共 {0} 行'.format(df.index.__len__()))
# ^ 删空行、去重
df.dropna(axis=0, how="any", inplace=True)
df.drop_duplicates(inplace=True)
print('共 {0} 行'.format(df.index.__len__()))
# ^ 求第一列平均值、中位值、众数
a = df['sepal_length'].mean()
b = df['sepal_length'].median()
c = df['sepal_length'].mode()
print('{} {} {}'.format(a, b, c))
# ^ 将第一列变为 numpy 数组
arr = np.array(df['sepal_length'])
# ^ 对花瓣长度进行排序
print(np.sort(arr))
# ^ 对花瓣长度进行求和
print(arr.sum())
# ^ 求花瓣长度均值
print(np.mean(arr))
# ^ 求花瓣长度标准差
print(np.std(arr))
# ^ 求花瓣长度最大值
print(np.max(arr))
# ^ 求花瓣长度最小值
print(np.min(arr))
study.py
# pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
import pandas as pd
import json
import os
path = os.path.dirname(__file__)
# f = open(path+'/data.json', 'r', encoding="utf-8")
# data = f.read()
# data = json.loads(data)
# pd.set_option('display.width', None)
# pd.set_option('display.max_rows', None)
# ^ 测试pandas
print(pd.__version__)
data = pd.read_json(path+'/data.json')
print(data)
# ^ Series
a = ["Google", "Runoob", "Wiki"] # @ 数组
myvar = pd.Series(a, index=["x", "y", "z"])
print(myvar)
a = {1: "Google", 2: "Runoob", 3: "Wiki"} # @ 字典
myvar = pd.Series(a)
print(myvar)
# ^ DataFrame
data = {
"calories": [420, 380, 390],
"duration": [50, 40, 45]
}
df = pd.DataFrame(data, index=["day1", "day2", "day3"])
print(df.loc["day2"])
data2 = [{'C': 'Google', 'A': 10, 'B': 93.5}, {'C': 'Runoob', 'A': 12, 'B': 89}]
df2 = pd.DataFrame(data2)
print(df2)
# ^ 打开 CSV 文件
df = pd.read_csv(path+'/iris.csv')
print(df.info())
# @ 返回前后 n 行,默认5行
print(df.head())
print(df.tail())
点赞是一种积极的生活态度,喵喵喵!(疯狂暗示)
Python Pandas库 初步使用的更多相关文章
- python pandas库——pivot使用心得
python pandas库——pivot使用心得 2017年12月14日 17:07:06 阅读数:364 最近在做基于python的数据分析工作,引用第三方数据分析库——pandas(versio ...
- Python Pandas库的学习(三)
今天我们来继续讲解Python中的Pandas库的基本用法 那么我们如何使用pandas对数据进行排序操作呢? food.sort_values("Sodium_(mg)",inp ...
- Python——Pandas库入门
一.Pandas库介绍 Pandas是Python第三方库,提供高性能易用数据类型和分析工具 import pandas as pd Pandas基于NumPy实现,常与NumPy和Matplotli ...
- Python pandas库159个常用方法使用说明
Pandas库专为数据分析而设计,它是使Python成为强大而高效的数据分析环境的重要因素. 一.Pandas数据结构 1.import pandas as pd import numpy as np ...
- Python Pandas库的学习(一)
今天我们来学习一下Pandas库,前面我们讲了Numpy库的学习 接下来我们学习一下比较重要的库Pandas库,这个库比Numpy库还重要 Pandas库是在Numpy库上进行了封装,相当于高级Num ...
- Python Pandas库的学习(二)
今天我们继续讲下Python中一款数据分析很好的库.Pandas的学习 接着上回讲到的,如果有人听不懂,麻烦去翻阅一下我前面讲到的Pandas学习(一) 如果我们在数据中,想去3,4,5这几行数据,那 ...
- Python Pandas 库的使用例子
主要在jupyter notebook里面熟悉这个库的使用,它的安装方法与实现,可自行搜索. Pandas是一个优秀的数据分析工具,官网:http://pandas.pydata.org/ 相关的库使 ...
- python pandas库的基本内容
pandas主要为数据预处理 DataFrame import pandas food_info = pandas.read_csv("路径") #绝对路径和相对路径都可以 ty ...
- Python之使用Pandas库实现MySQL数据库的读写
本次分享将介绍如何在Python中使用Pandas库实现MySQL数据库的读写.首先我们需要了解点ORM方面的知识. ORM技术 对象关系映射技术,即ORM(Object-Relational ...
随机推荐
- [源码解析] TensorFlow 分布式环境(3)--- Worker 静态逻辑
[源码解析] TensorFlow 分布式环境(3)--- Worker 静态逻辑 目录 [源码解析] TensorFlow 分布式环境(3)--- Worker 静态逻辑 1. 继承关系 1.1 角 ...
- 内网渗透----Token 窃取与利用
0x00 前言 在之前的文章<渗透技巧--程序的降权启动>介绍了使用 SelectMyParent 降权的方法,本质上是通过 token 窃取实现的.这一次将要对 token 窃取和利用做 ...
- 玩转SpringBoot之定时任务@Scheduled线程池配置
序言 对于定时任务,在SpringBoot中只需要使用@Scheduled 这个注解就能够满足需求,它的出现也给我们带了很大的方便,我们只要加上该注解,并且根据需求设置好就可以使用定时任务了. 但是, ...
- git tag、gitignore和git撤销提交
前言 最近在git的使用过程中遇到了一些新的问题,所以写下来方便自己回忆. git tag 打标签 git tag -a v1.00 -m "注释" git tag 打标签命令 - ...
- babel和polyfill?
Babel: Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码.注意:Babel 默认只转换新的 JavaScript 句法(syntax),而不转换新的 API ...
- 面试问题之计算机网络:OSI七层网络模型及相关协议
一.应用层 功能:为应用程序提供服务并规定应用程序中通信相关的细节: 包括的协议如下: 1.超文本传输协议HTTP:这是一种基本的客户机/服务器的访问协议:浏览器向服务器发送请求,而服务器会应相应的网 ...
- 为什么要使用 rabbitmq?
(1)在分布式系统下具备异步,削峰,负载均衡等一系列高级功能; (2)拥有持久化的机制,进程消息,队列中的信息也可以保存下来. (3)实现消费者和生产者之间的解耦. (4)对于高并发场景下,利用消息队 ...
- Java 中会存在内存泄漏吗,请简单描述?
理论上 Java 因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是 Java 被 广泛使用于服务器端编程的一个重要原因):然而在实际开发中,可能会存在无 用但可达的对象,这些对象不能被 GC 回 ...
- 什么是 spring 装配?
当 bean 在 Spring 容器中组合在一起时,它被称为装配或 bean 装配.Spring 容器需要知道需要什么 bean 以及容器应该如何使用依赖注入来将 bean 绑定 在一起,同时装配 b ...
- 在 Spring 中如何注入一个 java 集合?
Spring 提供以下几种集合的配置元素:类型用于注入一列值,允许有相同的值.类型用于注入一组值,不允许有相同的值.类型用于注入一组键值对,键和值都可以为任意类型.类型用于注入一组键值对,键和值都只能 ...