![](/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.