当前位置:首页 >> 编程语言 >> 【Python学习】 - 如何将Pandas包中的groupby分组类型转换成DataFrame(一步就足够了),索爱k850i

【Python学习】 - 如何将Pandas包中的groupby分组类型转换成DataFrame(一步就足够了),索爱k850i

0evadmin 编程语言 2
文件名:【Python学习】 - 如何将Pandas包中的groupby分组类型转换成DataFrame(一步就足够了),索爱k850i 【Python学习】 - 如何将Pandas包中的groupby分组类型转换成DataFrame(一步就足够了)

 输入:df_Grp,类型是pandas.core.groupby.generic.DataFrameGroupBy

我们先来学习一下如何将分组后的其中一个分组给转换成DataFrame类型:

tmp = dict(list(df_Grp))tmpname=[]tmpname = [i for i,j in df_Grp]#下面这行代码其实就转化成DataFrame了,但是只是一个数据的转过去了,如果要实现所有的都转过去,还是需要完成DataFrame的添加行操作,并且要reset_indexans_df = pd.DataFrame(tmp[tmpname[0]])#或者ans_df = df_Grp.get_group(tmpname[0]) #get_group函数返回一个DataFrame

但是注意此时得到的index不是0~len-1这样的顺序,而是乱序的,也就是groupby之前的顺序,所以需要再调用reset_indnex()函数进行操作。



 

当然,上面那一步只是做到了将其中的一个name进行操作,而如果想把所有name都变回去,那就需要加一步:DataFrame的行插入。这一点可以使用concat函数完成,注意一定要有 ignore_index=True 这一步!

ans_df = pd.concat(tmp,ignore_index = True)

对于concat函数,注意第一个参数需要是一个list,而不能是其他类型,如果直接传入的是多个DataFrame的名字的时候,注意不要在上面加引号,因为这样就不对了,就变成了字符串操作,不是list的操作了 ,这一点一定要非常注意,因为非常容易在这个地方犯错。比如要df1和df2,那就ans_df = pd.concat( [df1,df2] ,ignore_index = True),而不是ans_df = pd.concat( ['df1','df2'] ,ignore_index = True)

 

 

 

知识点1:

reset_index(inplace=Ture)函数通过重新建立索引,可以得到DataFrame类型。

知识点2:

DataFrameGroupBy是可以用i,j 来获取每一个元素的,i代表的是属性名字,j获取的是基本信息,是一个DataFrame类型

知识点3:

这种写法:tmpname = [i for i,j in df_Grp],可以快速的得到一个list。

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接