python/pandas中一行转多行(列值分割)

movielens中的genres列有多个值,由”|”隔开,在统计的时候需要将其分割,以便统计每个电影类型,这就涉及到python中的一行转多行了。。(不知道学名叫啥。。)

目录

1. 先看一下数据

2. 仅分割genres列

3. 若要保留一列作为index

4. 若要保留两列作为index

1. 先看一下数据

test = [{"a":1,"b":9,"genres":"Animation|Children's|Musical"},{"a":2,"b":9,"genres":"Musical|Romance"}]
test = pd.DataFrame(test)
test

python/pandas中一行转多行(列值分割)

2. 仅分割genres列

test["genres"].str.split('|',expand=True).stack().reset_index(level=1,drop=True).reset_index(name='genres')

python/pandas中一行转多行(列值分割)

看看每一步都在干啥

(1) .str.split(‘|’, expand=True);分割并展开,缺失的为None

python/pandas中一行转多行(列值分割)

(2).stack();堆叠成一列

python/pandas中一行转多行(列值分割)

(3).reset_index(level=1);将序列转换成dataframe,,level也能为0,看看

python/pandas中一行转多行(列值分割)

python/pandas中一行转多行(列值分割)

后面就容易理解了。

3. 若要保留一列作为index

比如:

python/pandas中一行转多行(列值分割)

代码:

(test.set_index("a"))["genres"].str.split('|',expand=True).stack().reset_index(level=1,drop=True).reset_index(name='genres')

python/pandas中一行转多行(列值分割)

4. 若要保留两列作为index

(test.set_index(["a","b"]))["genres"].str.split('|',expand=True).stack().reset_index(level=2,drop=True).reset_index(name='genres')

python/pandas中一行转多行(列值分割)

Original: https://blog.csdn.net/kelanj/article/details/124117687
Author: 还是小小白
Title: python/pandas中一行转多行(列值分割)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/751620/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • copp | AAA

    2、在转发层有一个CEF表,该表是实时的与控制层的路由表同步的,其实严格来说路由器其实并不是按照路由表来转发的,而是按照转发层的CEF表来转发数据的。 3、在控制层与转发层有一道门…

    Python 2023年6月15日
    054
  • Windows资源管理器的使用

    Original: https://blog.csdn.net/dllglvzhenfeng/article/details/128294469Author: dllglvzhen…

    Python 2023年9月5日
    047
  • 【SVD(奇异值分解)】详解及python-Numpy实现

    目录 一、特征值分解(EVD) 二、奇异值分解(SVD) 奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不…

    Python 2023年8月1日
    047
  • 一文带你理解NumPy中的Broadcasting广播机制

    文章目录 前言 官方文档 * 广播机制概述 广播机制规则 总结 前言 在吴恩达老师的深度学习专项课程中,老师有提到NumPy中的广播机制,同时那一周的测验也有涉及到广播机制的题目。…

    Python 2023年8月23日
    070
  • 一个完整的scrapy爬取图片示例-及简要知识点

    1.创建爬虫项目,在指定文件夹的命令窗口下运行scrapy startproject cnblogspider项目结构如下 2.添加item代码如下 import scrapy c…

    Python 2023年10月1日
    045
  • 关于Flask高级_RequestParser中的add_argument方法参数详解

    Flask高级_RequestParser中的add_argument方法参数详解 一.参数介绍 default:默认值,如果这个参数没有值,那么将使用这个参数 指定的默认值。 r…

    Python 2023年8月13日
    069
  • 零代码爬虫神器 — Web Scraper 的使用

    经常会遇到一些简单的需求,需要爬取某网站上的一些数据,但这些页面的结构非常的简单,并且数据量比较小,自己写代码固然可以实现,但杀鸡焉用牛刀? 目前市面上已经有一些比较成熟的零代码爬…

    Python 2023年6月6日
    057
  • 钩子函数

    控制子类的的创建 1、元类 这种方式可能是最常见的也是我们最先知晓的,当然这种方式可能需要我们对元类有比较深入的了解,所以引入了下面的这种方式 2、钩子函数 init__subcl…

    Python 2023年10月30日
    038
  • SCRUM官方权威指南

    posted @2022-04-18 21:32 HammerZe 阅读(25 ) 评论() 编辑 Original: https://www.cnblogs.com/48xz/p…

    Python 2023年6月10日
    066
  • 基于pytorch的tensor的基本操作总结(二)

    本文主要讲tensor的裁剪、索引、降维和增维 Tensor与numpy互转、Tensor运算等,请看这篇文章 目录 9.1、首先看torch.squeeze()函数: 示例9.1…

    Python 2023年8月23日
    029
  • Mac安装Brew包管理系统

    Mac安装Brew包管理系统 前言 为什么需要安装brew 作为一个开发人员, 习惯了使用centos的yum和ubuntu的apt, 在mac中有没有这两个工具的平替? 有, 就…

    Python 2023年6月12日
    057
  • numpy教程

    一、numpy概述 官方文档: https://www.numpy.org官方中文文档: https://www.numpy.org.cn/ 二、numpy基础 用np.ndarr…

    Python 2023年8月26日
    033
  • 这些编程语言你需要了解一下

    2022 年最受欢迎的语言 1、Python Python 位居 2022 年最受欢迎的语言榜首,并且鉴于多种原因成为最适合学习的编程语言之一。Python 是一种通用的服务器端编…

    Python 2023年8月1日
    029
  • numpy.random函数整合(部分)

    在我们进行python数据分析的学习和应用过程中,经常需要用到numpy的随机函数,由于随机函数random的功能比较多,经常会混淆或记不住,下面由我进行一部分的总结 1.nump…

    Python 2023年8月25日
    033
  • 用Python写一个新年倒计时

    ❤️‍🔥前言:春回大地,万象更新!春在招手,朋友们,我们一起互相祝愿吧!一年更比一年好。时光苒,岁月如梭。踏着新年欢快的钟声,我们又迎来了这个期待已久的日子过去的一年,我们有泪水也…

    Python 2023年9月5日
    043
  • 逆向爬虫19 Scrapy增量式和分布式

    逆向爬虫19 Scrapy增量式和分布式 一、增量式爬虫 1. 场景引入 设想一个场景,你想获取一个论坛的某个板块上所有的帖子信息,但这个板块每时每刻都有可能会有新帖子被发出来。因…

    Python 2023年10月2日
    039
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球