![](/img/trans.png)
[英]how to assign a pandas.core.series.Series to a pandas dataframe column
[英]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 :
如果這回答了您的問題,請接受,以便每個人都知道這已得到解答,否則請告訴我們您是否仍在苦苦掙扎,以便我們提供幫助!
**我已經解決了列的多索引和分類索引以獲得所需的結果。 **
使用 groupby().Value_counts() 創建了 pandas.series object
使用 pd.series() object.Unstack() 將其保存為 DataFrame。
獲得的數據框有多個索引和列作為分類索引。
現在將分類列索引轉換為列表
現在在 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.