热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:pandas的使用

本文由编程笔记#小编为大家整理,主要介绍了pandas的使用相关的知识,希望对你有一定的参考价值。#Series以为,带标签数组
本文由编程笔记#小编为大家整理,主要介绍了pandas的使用相关的知识,希望对你有一定的参考价值。

# Series 以为,带标签数组
# DataFrame二维,Series容器
import string
import pandas as pd
import numpy as np
# t = pd.Series(np.arange(10), index=list(string.ascii_uppercase[:10]))
# string.ascii_uppercase[:10]表示创建10个大写字母,从小到大A-Z
# 创建索引index=
# print(t)
# print(t[‘A‘])
# 类似与字典的方法
# print(t[[‘A‘, ‘B‘]])
# 还可以多取
# print(t[t > 4])
# 布尔索引,取键值大于4的
# temp = {‘name‘: ‘宵夜‘, ‘age‘: ‘14‘}
# t = pd.Series(temp)
# 通过字典创建带标签的的数组
# 如果索引和键值长度不匹配,键值会变为NaN
# df = pd.read_csv(‘we.csv‘)
# 读取csv文件
# print(df)
# 24
import pymongo
myclient = pymongo.MongoClient(‘mongodb://localhost:27017/‘)
mydb = myclient[‘mongodb‘]
mycol = mydb[‘sites‘]
# mylist = [
# {"name": "Taobao", "alexa": 100, "url": "https://www.taobao.com"},
# {"name": "QQ", "alexa": 101, "url": "https://www.qq.com"},
# {"name": "Facebook", "alexa": 10, "url": "https://www.facebook.com"},
# {"name": "知乎", "alexa": 103, "url": "https://www.zhihu.com"},
# {"name": "Github", "alexa": 109, "url": "https://www.github.com"}
# ]
# x = mycol.insert_many(mylist)
data = mycol.find()
# for i in data:
# print(i)
# t1 = pd.Series(data[0])
# print(t1)
# ---------------------------索引-------------------------------#
t2 = pd.DataFrame(data)
# print(t2)
# print(t2[:10])
# print(t2[‘name‘])
# 取10行
# 字符串表示取列索引
# print(t2.loc[2, ‘name‘])
# 通过标签索引某行数据
# print(t2.loc[:, ‘name‘])
# 选取多行,某列
# print(t2.loc[[1, 2], :])
# 选取多列,某行
# print(t2.loc[[1, 2]])
# 索引多行
# print(t2.iloc[3, :])
# 索引某行
# print(t2.iloc[:, 2])
# 索引某列
# print(t2[(t2["alexa"] == ‘100‘)])
# 布尔索引
# --------------------------------------字符串操作函数-------------------------------------#
# print(t2.iloc[:, 2].str.split())
# 将读取到的内容切割为一个个的列表
# print(t2.iloc[:, 2].str.split().tolist())
# 将读取到的内容切割为一个大的列表
# ----------------------------------判断是否空--------------------------------#
# print(pd.isnull(t2))
# print(pd.notnull(t2))
# ----------------------------删除行有nan的-----------------------------#
# t2.dropna(axis=0, how=‘all‘)
# 全部为nan时删除
# t2.dropna(axis=0, how=‘any‘)
# 只要有nan是就删除
# ---------------------------修改nan处的只-------------------------------#
# t2.dropna(axis=0, how=‘any‘, inplace=True)
# 原地修改
# t2.fillna(19)
# 将nan处的值换成19
# --------------------------求均值--------------------------------#
# print(t2.mean())
# 求每一列的均值
# -----------------------------------内构建函数------------------------------- #
# print(t2.head(2))
# 显示头2行
# print(t2.info())
# 展示相关信息
# print(t2.describe())
# 展示数据里数字的相关信息
# print(t2.sort_values(by=‘_id‘, ascending=False).head(10))
# 通过指定索引排序,取前10个
# df = pd.read_sql()
# print(pd.DataFrame(np.arange(12).reshape(3, 4), index=list(‘abc‘), columns=list(‘defg‘)))
# 行索引指定index,列索引指定columns
# --------------------------------------合并数组--------------------------------#
# t2.join()
# 索引相同的的合并到一起
# print(t2.merge(t2, left_on=‘name‘, right_on=‘alexa‘))
# 按照指定的列把数据按照一个顶的方式合并到一起
# print(t2.merge(t2, on=‘name‘, how=‘inner‘))
# 默认是交集
# print(t2.merge(t2, on=‘name‘, how=‘outer‘))
# 并集,NaN补全
# print(t2.merge(t2, on=‘name‘, how=‘left‘))
# 左边为准,NaN补全
# print(t2.merge(t2, on=‘name‘, how=‘left‘))
# 右边为准,NaN补全
# ------------------------------------分组和聚合-------------------------------------#
t4 = t2.groupby(by=‘name‘)
# 分组
# for i, j in t4:
# print(i)
# print(1‘-‘ * 100)
# print(j)
# print(‘*‘ * 100)
# 遍历
# print(t4.count())
# print(t4[‘name‘].count())
# print(t4[‘name‘].count()[‘Facebook‘])
# 统计
t6 = t2.groupby(by=[t2[‘alexa‘], t2[‘url‘]])
# 支持多个条件进行分组
# for i in t6:
# print(i)
# -------------------------------------索引和复合索引------------------------------#
# print(t2.index)
# 获取index
# t2.index = [i for i in range(0, 39)]
# 指定index
# t2.reindex(list(‘abcdef‘))
# 重设index
# t2.set_index(‘name‘, drop=False)
# 将某一列作为index,不删除那一列
# print(t2[‘name‘].unique())
# 将name列变成唯一索引
print(t2.set_index(‘name‘).index.unique())
# 将name列变成唯一索引
# ----复合索引-----
t2.swaplevel()
# swaplevel接受两个级别编号或名称,并返回一个互换了级别的新对象(但数据不会发生变化)将分层的索引调换位置,1级索引遍2级索引
print(t2.index)
# 36 25.03

 

官方文档:https://www.pypandas.cn/docs/  

 


推荐阅读
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • EPPlus绘制刻度线的方法及示例代码
    本文介绍了使用EPPlus绘制刻度线的方法,并提供了示例代码。通过ExcelPackage类和List对象,可以实现在Excel中绘制刻度线的功能。具体的方法和示例代码在文章中进行了详细的介绍和演示。 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
author-avatar
你去过的地方叫远方
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有