首页 > 其他分享 >pandas高级多表操作

pandas高级多表操作

时间:2022-12-23 13:04:58浏览次数:36  
标签:city 多表 company 高级 pd print position avg pandas


import pandas as pd
import numpy as np
position = pd.read_csv("D:\mycode\用pandas\data\position.csv", encoding="gbk")
company = pd.read_csv("D:\mycode\用pandas\data\company_sql.csv", encoding="gbk")
# 修改列名
col = list(company.columns)
col[0] = "id"
# 重新赋值
company.columns = col
print("1,------", company)
# 右关联
print("2,-----", position.merge(right=company, how="inner", left_on="companyId", right_on="id"))
# 基于索引关联
print("3,----", company.join(position))
# 堆叠全关联左右拼接
print("4,--------", pd.concat([company, position], axis=1))
# 创建df1表
df1 = pd.DataFrame(
{
"A": list("abcd"),
"B": list("efgh"),
}
)
print("5,--------", df1)
# 创建df2表
df2 = pd.DataFrame(
{
"C": list("abcd"),
"D": list("efgh"),
}
)
print("6,--------", df2)
# 拼接
print("7,----", pd.concat([df1, df2], sort=False))
print("8,----", pd.concat([df1, df2], sort=True))
print("9,----", pd.concat([df1, df2], axis=1))
# 多重索引切片找值
print(position.groupby(by=["city", "education"]).mean())
print(position.groupby(by=["city", "education"]).mean().avg)
print(position.groupby(by=["city", "education"]).mean().avg["上海"])
print(position.groupby(by=["city", "education"]).mean().avg["上海"]["博士"])
print(position.groupby(by=["city", "education"]).mean().loc["上海"])
print(position.groupby(by=["city", "education"]).mean().loc["上海", "博士"])
print("10,-------")
# 基于set_index
print(position.sort_values(by=["city", "education"]).set_index(["city", "education"]))
print("11,------")
# 表格
print(position.positionLables)
print("12,------")
# 字符串计数
print(position.positionLables.str.count("分析师"))
print("13,--------")
# 出现位置
print(position.positionLables.str.find("数据"))
print("14,-------")
# 针对字符串操作
print(position.positionLables.str[1:-1])
print("15,--------")
# 针对值替换
print(position.replace(80307, ""))
print("16,-------")
# 针对值里面字符串替换
print(position.positionLables.str[1:-1].str.replace("'", ""))
print("17,------------")
# 改为空值
position.loc[position.city == "深圳", "city"] = np.NaN
print(position)
print("18,----------")
# 空值填充
print(position.fillna(1))
print("19,--------")
# 填充列名
position.city.fillna("abc")
print(position)
print("20,----------")
# 删除空值
print(position.dropna())
print("21,--------------")
# 字符串拼接
position = position[~position['avg'].isnull()]
position.avg = position.avg.astype('str') + "k"
print(position)
print(position.avg)
print("22,----------")
# 匿名函数拼接
position.avg.apply(lambda x: str(x) + "k")
print(position)
print("23,----------")
# 不同城市之间薪资排名前5
def func(x, n):
r = x.sort_values("avg", ascending=False)
return r[:n]
position.groupby("city").apply(func, n=5)
print(position)
print("24,-------------")

pandas高级多表操作_ci

 



标签:city,多表,company,高级,pd,print,position,avg,pandas
From: https://blog.51cto.com/u_15920572/5965366

相关文章

  • scanf高级用法&不要忘记清除缓冲区的换行符号
    题目详情-7-4查找书籍(pintia.cn)  给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。输入格式  输入第一行给出正整数n(<......
  • Linux 学习-初中高级班
    学习 Linux 最重要的一环是什么? 其实是自己的学习心态~最重要的地方在于能够『刻苦耐劳~』 ......
  • Docker高级篇:实战Redis集群!从3主3从变为4主4从
    通过前面两篇,我们学会了三主三从的Redis集群搭建及主从容错切换迁移,随着业务增加,可能会有主从扩容的,所以,本文我们来实战主从扩容PS本系列:《Docker学习系列》教程已经发布的......
  • Pandas中高效的选择和替换操作总结
    使用正确的工具和技术来最大限度地利用数据是很重要的。Pandas是数据操作、分析和可视化的重要工具,有效地使用Pandas可能具有挑战性,从使用向量化操作到利用内置函数,这些最佳......
  • k8s高级存储-GlusterFS存储类(StorageClass)实战
       GlusterFS是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。集成来自多台服务器上的磁盘存储资源到单一全局命名......
  • 【高级数据库】第二章 第01讲 数据库索引
    【高级数据库】第二章数据库索引  在第一章我们主要介绍了数据库的基础知识,包括数据库和数据库管理系统的概念,了解了数据库管理系统是如何执行用户命令的。另外还回顾了......
  • 【高级数据库】第一章 第01讲 数据库概述
    【高级数据库】第一章DBMS系统概述  博主学院最近有关于高级数据库的课程,为了很好的记录高级数据库的相关知识点,开辟了以《数据库系统实现(第二版)》为基础,结合学院课程具......
  • 【高级数据库】第一章 第02讲 DBMS概述
    【高级数据库】第一章DBMS系统概述  上一讲主要介绍数据库、数据库管理系统、数据仓库等的基本概念。本节详细讲解数据库管理系统的原理。第02讲DBMS概述  DBMS又称数......
  • Pandas中高效的选择和替换操作总结
    作为数据科学家,使用正确的工具和技术来最大限度地利用数据是很重要的。Pandas是数据操作、分析和可视化的重要工具,有效地使用Pandas可能具有挑战性,从使用向量化操作到利用......
  • Docker高级篇:实战Redis集群!从3主3从变为4主4从
    通过前面两篇,我们学会了三主三从的Redis集群搭建及主从容错切换迁移,随着业务增加,可能会有主从扩容的,所以,本文我们来实战主从扩容PS本系列:《Docker学习系列》教程已经发布......