热门标签 | 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/  

 


推荐阅读
  • 前端监控系列2 | 深入探讨JS错误监控的重要性与实践
    作者:彭莉,火山引擎APM研发工程师,专注于前端监控技术的研发。本文将深入讨论JS错误监控的必要性及其实现方法,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 设计模式笔记12:迭代器模式(Iterator Pattern) ... [详细]
  • 使用Python轻松合并大量复杂Excel文件
    当面对大量的Excel文件时,如何高效地将它们合并成一个文件成为了一项挑战。本文将指导初学者如何利用Python的几个库,在几十行代码内完成这一任务。 ... [详细]
  • Iris 开发环境配置指南 (最新 Go & IntelliJ IDEA & Iris V12)
    本指南详细介绍了如何在最新的 Go 语言环境及 IntelliJ IDEA 中配置 Iris V12 框架,适合初学者和有经验的开发者。文章提供了详细的步骤说明和示例代码,帮助读者快速搭建开发环境。 ... [详细]
  • scrapyredis分布式爬虫 ... [详细]
  • [TOC]Process的几个用法和守护进程一、Process的join用法话不多说,直接上代码二、Process的pid和ppid用法需要先导入os模块站在当前进程的角度:os. ... [详细]
  • 本文深入探讨了Kubernetes中Pod的基础概念及其分类,旨在帮助读者更好地理解和利用这一核心组件。通过详细的解析,我们将了解Pod如何作为最小的部署单元在Kubernetes集群中工作。 ... [详细]
  • 深入解析Pytest Fixture与Conftest的高级应用
    本文详细探讨了Pytest中的Fixture机制及其在conftest.py文件中的全局配置应用,涵盖Fixture的基本概念、定义、多种使用场景以及作用域等内容,适合希望深入了解Pytest测试框架的开发者。 ... [详细]
  • Python图像处理库概览
    本文详细介绍了Python中常用的图像处理库,包括scikit-image、Numpy、Scipy、Pillow、OpenCV-Python、SimpleCV、Mahotas、SimpleITK、pgmagick和Pycairo,旨在帮助开发者和研究人员选择合适的工具进行图像处理任务。 ... [详细]
  • 本文介绍了如何通过十折交叉验证方法评估回归模型的性能。我们将使用PyTorch框架,详细展示数据处理、模型定义、训练及评估的完整流程。 ... [详细]
  • 本文探讨了K近邻(KNN)算法中K值的选择对模型复杂度的影响,通过实验分析不同K值下的模型表现,旨在为KNN算法的应用提供指导。 ... [详细]
  • Flutter 高德地图插件使用指南
    本文档详细介绍了如何在Flutter项目中集成和使用高德地图插件,包括安装、配置及基本使用方法。 ... [详细]
  • 本文探讨了如何在Python中处理长数据的完全显示问题,包括numpy数组、pandas DataFrame以及tensor类型的完整输出设置。 ... [详细]
  • DOM 属性快速参考指南
    本文档提供了一系列常用的 DOM 属性及其用法说明,旨在帮助开发者快速理解和应用这些属性。 ... [详细]
  • 本文介绍了如何利用高德地图API实现一个高效的地点选择组件,适用于需要用户选择具体位置的应用场景,如活动邀请函填写等。该组件支持从地图中选择地点,并自动将地点信息回填至表单中。 ... [详细]
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社区 版权所有