簡體   English   中英

如何將具有多個索引的 pandas.core.series.Series object 轉換為 pandas ZC699575A5E8AFD9EZFBCA1A 填充的所有列?

[英]How to convert pandas.core.series.Series object with Multiple index to a pandas Dataframe with all columns filled?

我有一個具有多個索引的 pandas 系列,例如此圖像“target”、“Lastnewjob”、“experienceGroup”。 這是 pandas.core.series.series 類型。 我想將它轉換為一個數據框(第二張圖片),其中“experienceGroup”值將是列名,“target”、“Lastnewjob”仍然是列。

在此處輸入圖像描述

我想看的Dataframe

在此處輸入圖像描述

使用 groupby 獲取系列的代碼。

Job=df.groupby(['target','last_new_job'])['experienceGroup'].value_counts()
Job.unstack()

-- Pandas系列

添加更多細節以便您可以創建 Job- pandas 系列實際上是由 groupBy 和 value_counts()

details={
"experienceGroup":['0-5','6-12','13-19','20 & above','0-5','6-12','13-19','20 & above'],
"last_new_job":[1,'>4',2,"never",4,3,3,4],
"target":[1.0,0.0,1.0,0.0,1.0,0.0,1.0,0.0],
"experience":[1,7,15,20,3,8,17,25]  }   
 df5 = pd.DataFrame(details) 
 df5  

要創建 Pandas 系列並通過取消堆疊顯示它 - 使用以下代碼

Job=df5.groupby(['target','last_new_job'])['experienceGroup'].value_counts()
Job.unstack()

我不知道評論是否為您回答了足夠詳細的問題,盡管@mustnot 是對的,您可以使用 reset_index。 這是我重新創建 dataframe 的代碼,然后是解決方案:

arrays = [
   [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1], 
   [1,2,3,4,'>4','never',1,2,3,4,'>4','never']
]

tuples = list(zip(*arrays))
experienceGroup = {
    '0-5': [2127, 535, 152, 87, 87, 1068, 1146, 278, 61, 52, 40, 500],
    '6-12': [2172, 833, 292, 323, 572, 411, 653, 282, 89, 94, 171, 194],
    '13-19': [911, 444, 184, 201, 711, 109, 169, 59, 51, 45, 160, 31],
    '20 & above': [693, 386, 164, 190, 1317, 118, 148, 80, 30, 36, 225, 13],    
}
index = pd.MultiIndex.from_tuples(tuples, names=['target', 'last_new_job'])
df = pd.DataFrame(data=experienceGroup, index=index)
df

然后我的數據框看起來像你的多索引:

在此處輸入圖像描述

要刪除多索引,您需要做的就是:

df.reset_index(inplace=True)
df

然后你得到你正在尋找的單一索引 dataframe :

在此處輸入圖像描述

如果這回答了您的問題,請接受,以便每個人都知道這已得到解答,否則請告訴我們您是否仍在苦苦掙扎,以便我們提供幫助!

**我已經解決了列的多索引和分類索引以獲得所需的結果。 **

  1. 使用 groupby().Value_counts() 創建了 pandas.series object

  2. 使用 pd.series() object.Unstack() 將其保存為 DataFrame。

  3. 獲得的數據框有多個索引和列作為分類索引。

  4. 現在將分類列索引轉換為列表

  5. 現在在 dataframe 代碼上使用重置索引:

    #第2步
    Job=df5.groupby(['target','last_new_job'])['experienceGroup'].value_counts().unstack() #step 4 Job.columns=Job.columns.tolist() #step 5 Job.reset_index( inplace=True) 工作在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM