日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Python学习笔记:pandas爆炸函数之explode

發(fā)布時(shí)間:2023/12/15 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 Python学习笔记:pandas爆炸函数之explode 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、介紹

通過 explode 可以實(shí)現(xiàn)列轉(zhuǎn)行的功能。

explode 這個(gè)爆炸方法只能處理列表、元組、Series等類型。

二、實(shí)操

# 創(chuàng)建測(cè)試集
import pandas as pd
df = pd.DataFrame({'Name':['呂布','貂蟬','趙云'],
                   'Hobby':[['打籃球','玩游戲','喝奶茶'],['敲代碼','看電影'],['聽音樂','健身']]})
'''
  Name            Hobby
0   呂布  [打籃球, 玩游戲, 喝奶茶]
1   貂蟬       [敲代碼, 看電影]
2   趙云        [聽音樂, 健身]
'''

# 原地爆炸!!!
df.explode('Hobby')

# 列表有重復(fù)值 可能存在重復(fù)行
df.explode('Hobby').drop_duplicates().reset_index(drop=True)
'''
  Name Hobby
0   呂布   打籃球
1   呂布   玩游戲
2   呂布   喝奶茶
3   貂蟬   敲代碼
4   貂蟬   看電影
5   趙云   聽音樂
6   趙云    健身
'''

如果數(shù)據(jù)框中數(shù)據(jù)為非可爆炸的類型,則可提前進(jìn)行分列操作。

df2 = pd.DataFrame({'Name':['呂布','貂蟬','趙云'],
                   'Hobby':['打籃球,玩游戲,喝奶茶','敲代碼,看電影','聽音樂,健身']})
    
df2.explode('Hobby') # Not Work
df2['Hobby2'] = df2['Hobby'].str.split(',')
# df2['Hobby2'] = df2['Hobby'].apply(lambda x: x.split(','))
df2.explode('Hobby2')
'''
  Name        Hobby Hobby2
0   呂布  打籃球,玩游戲,喝奶茶    打籃球
0   呂布  打籃球,玩游戲,喝奶茶    玩游戲
0   呂布  打籃球,玩游戲,喝奶茶    喝奶茶
1   貂蟬      敲代碼,看電影    敲代碼
1   貂蟬      敲代碼,看電影    看電影
2   趙云       聽音樂,健身    聽音樂
2   趙云       聽音樂,健身     健身
'''

三、實(shí)踐題

列轉(zhuǎn)行拆分爆炸

import pandas as pd
import numpy as np

df = pd.read_excel(r'C:\Users\Hider\Desktop\data.xlsx')

'''
   年級(jí)        姓名
0   1  A1;B1;C1
1   2  A2;B2;C2
2   3  A3;B3;C3
3   4  A4;B4;C4
4   5  A5;B5;C5
5   6  A6;B6;C6
6   7  A7;B7;C7
7   8  A8;B8;C8
8   9  A9;B9;C9
'''
df.columns # Index(['年級(jí)', '姓名'], dtype='object')
df['新列'] = df['姓名'].str.split(';')
df1 = df.explode('新列')

還原

# 數(shù)據(jù)還原
def func(df):
    x = ','.join(df.values)
    return x

df2 = df1.groupby('年級(jí)').agg(func).reset_index()

參考鏈接:pandas100個(gè)騷操作五:使用 explode 實(shí)現(xiàn) pandas 列轉(zhuǎn)行的 2 個(gè)常用技巧

參考鏈接:python pandas包的爆炸函數(shù)explode

參考鏈接:pandas.DataFrame.explode

總結(jié)

以上是生活随笔為你收集整理的Python学习笔记:pandas爆炸函数之explode的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。