python Pandas中数据的合并与分组聚合

 更新时间:2022年01月13日 09:36:33   作者:沉迷学习的郑博士  
大家好,本篇文章主要讲的是python Pandas中数据的合并与分组聚合,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

一、字符串离散化示例

对于一组电影数据,我们希望统计电影分类情况,应该如何处理数据?(每一个电影都有很多个分类)

思路:首先构造一个全为0的数组,列名为分类,如果某一条数据中分类出现过,就让0变为1

代码:

# coding=utf-8
import pandas as pd
from matplotlib import pyplot as plt
import numpy as np
file_path = "./IMDB-Movie-Data.csv"
 
df = pd.read_csv(file_path)
print(df["Genre"].head(3))
#统计分类的列表
temp_list = df["Genre"].str.split(",").tolist()  #[[],[],[]]
 
genre_list = list(set([i for j in temp_list for i in j]))
 
#构造全为0的数组
zeros_df = pd.DataFrame(np.zeros((df.shape[0],len(genre_list))),columns=genre_list)
# print(zeros_df)
 
#给每个电影出现分类的位置赋值1
for i in range(df.shape[0]):
    #zeros_df.loc[0,["Sci-fi","Mucical"]] = 1
    zeros_df.loc[i,temp_list[i]] = 1
 
# print(zeros_df.head(3))
 
#统计每个分类的电影的数量和
genre_count = zeros_df.sum(axis=0)
print(genre_count)
 
#排序
genre_count = genre_count.sort_values()
_x = genre_count.index
_y = genre_count.values
#画图
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(_x)),_y,width=0.4,color="blue")
plt.xticks(range(len(_x)),_x)
plt.show()

结果:

 二、数据合并

2.1 join

join:默认情况下他是把索引相同的数据合并到一起

 2.2 merge

merge:按照指定的把数据按照一定的方式合并到一起

 三、数据的分组和聚合

示例:现在我们有一组关于全球星巴克的店铺的统计数据,如果我想知道美国的星巴克数量和中国的哪个多,或者我想知道中国每个省份的星巴克的数量情况,应该怎么办?

代码:

import pandas as pd
 
file_path = "./starbucks_store_worldwide.csv"
 
df = pd.read_csv(file_path)
grouped = df.groupby(by="Country")#按照分组查询
# print(grouped)
 
#DataFrameGroupBy
#可以进行遍历
# for i,j in grouped:
#     print(i)
#     print("-"*100)
#     print(j,type(j))
#     print("*"*100)
# 调用聚合方法
country_count = grouped["Brand"].count()
# print(country_count["US"])
# print(country_count["CN"])
 
#统计中国每个省店铺的数量
china_data = df[df["Country"] =="CN"]
grouped = china_data.groupby(by="State/Province").count()["Brand"]
# print(grouped)
# 数据按照多个条件进行分组,返回Series
grouped = df["Brand"].groupby(by=[df["Country"],df["State/Province"]]).count()
# print(grouped)
# print(type(grouped))
# 数据按照多个条件进行分组,返回DataFrame
grouped1 = df[["Brand"]].groupby(by=[df["Country"],df["State/Province"]]).count()
grouped2= df.groupby(by=[df["Country"],df["State/Province"]])[["Brand"]].count()
grouped3 = df.groupby(by=[df["Country"],df["State/Province"]]).count()[["Brand"]]
print(grouped1,type(grouped1))
print("*"*100)
print(grouped2,type(grouped2))
print("*"*100)
print(grouped3,type(grouped3))

 四、索引

简单的索引操作:

获取index:df.index

指定index:df.index=['x','y']

重新设置index:df.reindex(list("abcdef"))

指定某一行作为index:df.set_index("Country",drop=False)

返回index的唯一值:df.set_index("Country").index.unique()

总结

到此这篇关于python Pandas中数据的合并与分组聚合的文章就介绍到这了,更多相关python Pandas内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现获取网站PR及百度权重

    Python实现获取网站PR及百度权重

    这篇文章主要介绍了Python实现获取网站PR及百度权重,本文使用传参的方式请求站长工具和谷歌工具获取PR值和百度权重,需要的朋友可以参考下
    2015-01-01
  • Python2及Python3如何实现兼容切换

    Python2及Python3如何实现兼容切换

    这篇文章主要介绍了Python2及Python3如何实现兼容切换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Python Dataframe常见索引方式详解

    Python Dataframe常见索引方式详解

    这篇文章主要介绍了Python Dataframe常见索引方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Python爬取网页的所有内外链的代码

    Python爬取网页的所有内外链的代码

    这篇文章主要介绍了Python爬取网页的所有内外链,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Flask web上传获取图像Image读取并使用方式

    Flask web上传获取图像Image读取并使用方式

    这篇文章主要介绍了Flask web上传获取图像Image读取并使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 利用python查看数组中的所有元素是否相同

    利用python查看数组中的所有元素是否相同

    这篇文章主要给大家介绍了关于如何利用python查看数组中的所有元素是否相同的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 详解如何在ChatGPT内构建一个Python解释器

    详解如何在ChatGPT内构建一个Python解释器

    这篇文章主要为大家详细介绍了如何在ChatGPT内构建一个Python解释器,文中的示例代码讲解详细,具有一定的学习价值,需要的可以参考一下
    2023-02-02
  • 详解matplotlib绘图样式(style)初探

    详解matplotlib绘图样式(style)初探

    这篇文章主要介绍了详解matplotlib绘图样式(style)初探,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 学好python基本数据类型

    学好python基本数据类型

    这篇文章主要介绍了学好python基本数据类型,学习python基本数据类型我们需要了解基本数据类型有数字int、布尔值bool、字符串str、列表list、元组tuple、字典dict等,其中包括他们的基本用法和其常用的方法,下面来看看文章的具体介绍吧
    2021-12-12
  • python字典添加值的方法及实例代码分享

    python字典添加值的方法及实例代码分享

    在本篇文章里小编给大家整理的是一篇关于python字典添加值的方法及实例代码讲解,有兴趣的朋友们可以学习下。
    2022-11-11

最新评论