【跟着stackoverflow学Pandas】--Converting a Pandas GroupBy object to DataFrame-Groupby对象转换为DataFrame
来源:互联网 发布:汉语拼音注音软件 编辑:程序博客网 时间:2024/05/17 17:44
最近做一个系列博客,跟着stackoverflow学Pandas。
专栏地址:http://blog.csdn.net/column/details/16726.html
以 pandas作为关键词,在stackoverflow中进行搜索,随后安照 votes 数目进行排序:
https://stackoverflow.com/questions/tagged/pandas?sort=votes&pageSize=15
Converting a Pandas GroupBy object to DataFrame-Groupby对象转换为DataFrame
split-apply-combine
我们在对数据进行清洗时,经常要用到split-apply-combine,首先对数据按照一定的标准进行split(分组),然后对每组数据进行apply(处理),最后把结果combine(合并),在这一系列操作中就必须要用到 pandas的groupby函数。
具体可以参考官方文档:
https://pandas.pydata.org/pandas-docs/stable/groupby.html
很多时候,GroupBy 对象不方便我们下一步操作,我们喜欢把他转化为DataFrame。下面介绍几种常用的方法。
参考:
https://stackoverflow.com/questions/10373660/converting-a-pandas-groupby-object-to-dataframe
转换
import pandas as pdprint(pd.__version__)# 0.20.3df1 = pd.DataFrame({"Name":["Alice", "Bob", "Mallory", "Mallory", "Bob" , "Mallory"], "City":["Seattle","Seattle","Portland","Seattle","Seattle","Portland"]})df1## City Name#0 Seattle Alice#1 Seattle Bob#2 Portland Mallory#3 Seattle Mallory#4 Seattle Bob#5 Portland Mallory#g1 = df1.groupby(["Name", 'City']).size() g1# Name City # Alice Seattle 1# Bob Seattle 2# Mallory Portland 2# Seattle 1# 如果要使用count,必须这样df1.groupby(["Name", "City"])[['Name','City']].count()# Name City# Name City # Alice Seattle 1 1# Bob Seattle 2 2# Mallory Portland 2 2# Seattle 1 1
此时得到的g1
数据已经是DataFrame格式, 但是属于MultiIndex, 如果想得到方方正正的DataFrame格式,可以采用 reset_index()
函数。
type(g1)# pandas.core.frame.DataFrameg1.index# MultiIndex(levels=[['Alice', 'Bob', 'Mallory'], ['Portland', 'Seattle']],# labels=[[0, 1, 2, 2], [1, 1, 0, 1]],# names=['Name', 'City'])g1.reset_index()print(g1.reset_index())# Name City 0# 0 Alice Seattle 1# 1 Bob Seattle 2# 2 Mallory Portland 2# 3 Mallory Seattle 1
count和size的区别
这里出现的count和size的区别,如果想深究可以参考:
size 是考虑 NaN的计数,而 count 则不考虑。
https://stackoverflow.com/documentation/pandas/1822/grouping-data/6874/aggregating-by-size-and-count#t=201607220906502658034
- 【跟着stackoverflow学Pandas】--Converting a Pandas GroupBy object to DataFrame-Groupby对象转换为DataFrame
- 【跟着stackoverflow学Pandas】How to iterate over rows in a DataFrame in Pandas-DataFrame按行迭代
- 【跟着stackoverflow学Pandas】add one row in a pandas.DataFrame -DataFrame添加行
- 【跟着stackoverflow学Pandas】-How do I get the row count of a Pandas dataframe-获取DataFrame行数
- 关于pandas.DataFrame的groupby的用法
- 【跟着stackoverflow学Pandas】Select rows from a DataFrame based on values in a column -pandas 筛选
- 【跟着stackoverflow学Pandas】Delete column from pandas DataFrame-删除列
- 【跟着stackoverflow学Pandas】 -Get list from pandas DataFrame column headers
- pandas数据预处理之dataframe的groupby操作
- Pandas GroupBy对象
- 【跟着stackoverflow学Pandas】
- 【跟着stackoverflow学Pandas】
- [每日一答] [20151012] pandas中,groupby方法返回MultiIndex转成DataFrame
- pandas中的groupby函数的分组结果怎么保存成DataFrame
- Pandas DataFrame
- Pandas(DataFrame)
- pandas-dataframe
- python dataframe groupby
- 数据库
- http
- java深入学习七之封装与继承,多态
- Python can't find '__main__' module in ''
- 算法分析与设计——LeetCode Problem.2 Add Two Numbers
- 【跟着stackoverflow学Pandas】--Converting a Pandas GroupBy object to DataFrame-Groupby对象转换为DataFrame
- 链表知识
- 【可持久化并查集】BZOJ3674[可持久化并查集加强版]题解
- 多进程的实现
- SSH项目整合配置文件关联图
- 笔下生花系列之文笔提炼
- Java堆内存溢出
- 欢迎使用CSDN-markdown编辑器
- Oracle HANGANALYZE