欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pandas dataframe 中的explode函數(shù)用法詳解

 更新時間:2020年05月18日 14:55:06   作者:Sinsa_SI  
這篇文章主要介紹了pandas dataframe 中的explode函數(shù)用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在使用 pandas 進行數(shù)據(jù)分析的過程中,我們常常會遇到將一行數(shù)據(jù)展開成多行的需求,多么希望能有一個類似于 hive sql 中的 explode 函數(shù)。

這個函數(shù)如下:

Code

# !/usr/bin/env python
# -*- coding:utf-8 -*-
# create on 18/4/13
import pandas as pd

def dataframe_explode(dataframe, fieldname): 
 temp_fieldname = fieldname + '_made_tuple_' 
 dataframe[temp_fieldname] = dataframe[fieldname].apply(tuple)  
 list_of_dataframes = []
 for values in dataframe[temp_fieldname].unique().tolist(): 
  list_of_dataframes.append(pd.DataFrame({
   temp_fieldname: [values] * len(values), 
   fieldname: list(values), 
  }))
 dataframe = dataframe[list(set(dataframe.columns) - set([fieldname]))].merge(pd.concat(list_of_dataframes), how='left', on=temp_fieldname) 
 del dataframe[temp_fieldname]
 return dataframe

df = pd.DataFrame({'listcol':[[1,2,3],[4,5,6]], "aa": [222,333]})
df = dataframe_explode(df, "listcol")

Description

將 dataframe 按照某一指定列進行展開,使得原來的每一行展開成一行或多行。( 注:該列可迭代, 例如list, tuple, set)

補充知識:Pandas列中的字典/列表拆分為單獨的列

我就廢話不多說了,大家還是直接看代碼吧

[1] df
Station ID  Pollutants
8809   {"a": "46", "b": "3", "c": "12"}
8810   {"a": "36", "b": "5", "c": "8"}
8811   {"b": "2", "c": "7"}
8812   {"c": "11"}
8813   {"a": "82", "c": "15"}

Method 1:

step 1: convert the Pollutants column to Pandas dataframe series

df_pol_ps = data_df['Pollutants'].apply(pd.Series)

df_pol_ps:
 a b c
0 46 3 12
1 36 5 8
2 NaN 2 7
3 NaN NaN 11
4 82 NaN 15

step 2: concat columns a, b, c and drop/remove the Pollutants

df_final = pd.concat([df, df_pol_ps], axis = 1).drop('Pollutants', axis = 1)

df_final:
 StationID a b c
0 8809 46 3 12
1 8810 36 5 8
2 8811 NaN 2 7
3 8812 NaN NaN 11
4 8813 82 NaN 15

Method 2:

df_final = pd.concat([df, df['Pollutants'].apply(pd.Series)], axis = 1).drop('Pollutants', axis = 1)

df_final:
 StationID a b c
0 8809 46 3 12
1 8810 36 5 8
2 8811 NaN 2 7
3 8812 NaN NaN 11
4 8813 82 NaN 15

以上這篇pandas dataframe 中的explode函數(shù)用法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Pytorch+PyG實現(xiàn)GraphSAGE過程示例詳解

    Pytorch+PyG實現(xiàn)GraphSAGE過程示例詳解

    這篇文章主要為大家介紹了Pytorch+PyG實現(xiàn)GraphSAGE過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Django使用裝飾器限制對視圖的訪問及實現(xiàn)原理

    Django使用裝飾器限制對視圖的訪問及實現(xiàn)原理

    除了可以在視圖處理中校驗用戶身份以及驗證用戶權限之外,Django還提供了便捷的裝飾器來完成這兩類校驗,下面介紹這兩個裝飾器的使用方法與實現(xiàn)原理,對Django裝飾器限制視圖訪問相關知識感興趣的朋友一起看看吧
    2022-10-10
  • django開發(fā)之settings.py中變量的全局引用詳解

    django開發(fā)之settings.py中變量的全局引用詳解

    當網(wǎng)站里面的一些內(nèi)容,如郵箱,網(wǎng)站標題,網(wǎng)站的描述,這些東西我們可以存在數(shù)據(jù)庫中也可以存放在我們的setting 文件中,這篇文章主要給大家介紹了django中settings.py變量的全局引用的相關資料,文中介紹的非常詳細,需要的朋友可以參考下。
    2017-03-03
  • Python使用matplotlib繪制動畫的方法

    Python使用matplotlib繪制動畫的方法

    這篇文章主要介紹了Python使用matplotlib繪制動畫的方法,涉及matplotlib模塊的常見使用技巧,需要的朋友可以參考下
    2015-05-05
  • 深入理解Python中的Contextlib庫

    深入理解Python中的Contextlib庫

    Python提供了一些內(nèi)建的庫以支持各種常見的編程任務,Contextlib庫是其中之一,它提供了一些用于支持上下文管理協(xié)議(即with語句)的函數(shù),這篇文章將詳細介紹如何使用Contextlib庫中的功能,需要的朋友可以參考下
    2023-06-06
  • Django項目的初步創(chuàng)建與簡單配置

    Django項目的初步創(chuàng)建與簡單配置

    本文主要介紹了Django項目的初步創(chuàng)建與簡單配置,詳細介紹了如何安裝和配置Django,包括創(chuàng)建項目、數(shù)據(jù)庫配置、路由等,通過本文可以了解如何使用Django創(chuàng)建自己的Web應用程序
    2023-09-09
  • Python正則抓取網(wǎng)易新聞的方法示例

    Python正則抓取網(wǎng)易新聞的方法示例

    這篇文章主要介紹了Python正則抓取網(wǎng)易新聞的方法,結合實例形式較為詳細的分析了Python使用正則進行網(wǎng)易新聞抓取操作的相關實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2017-04-04
  • OpenCV模板匹配matchTemplate的實現(xiàn)

    OpenCV模板匹配matchTemplate的實現(xiàn)

    這篇文章主要介紹了OpenCV模板匹配matchTemplate的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Python的Pandas庫中使用DataFrame篩選和刪除含特定值的行與列

    Python的Pandas庫中使用DataFrame篩選和刪除含特定值的行與列

    Pandas是一個強大的數(shù)據(jù)處理庫,提供了各種功能來操作和處理數(shù)據(jù),這篇文章主要給大家介紹了關于Python的Pandas庫中使用DataFrame篩選和刪除含特定值的行與列的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-05-05
  • Python3爬蟲中關于Ajax分析方法的總結

    Python3爬蟲中關于Ajax分析方法的總結

    在本篇文章里小編給大家整理的是一篇關于Python3爬蟲中關于Ajax分析方法的總結,需要的朋友們可以學習下。
    2020-07-07

最新評論