Python 将groupby操作的输出保存到CSV

Python 将groupby操作的输出保存到CSV,python,pandas,dataframe,group-by,Python,Pandas,Dataframe,Group By,我想问一个关于熊猫群比的问题。 我正在使用ipython笔记本电脑(python3) 例如,有这样一个数据帧 df1 = pd.DataFrame( { "Score" : ["A", "B", "C", "A", "B", "A"] ,"Class": ["Physics", "Science", "Chemistry", "Biology", "History", "English"] } ) 然后,我想用分数分组 df1.groupby("Score") 我需要这个的输出文件,我试过了

我想问一个关于熊猫群比的问题。 我正在使用ipython笔记本电脑(python3)

例如,有这样一个数据帧

df1 = pd.DataFrame( { "Score" : ["A", "B", "C", "A", "B", "A"] ,"Class":
["Physics", "Science", "Chemistry", "Biology", "History", "English"] } )
然后,我想用分数分组

df1.groupby("Score")
我需要这个的输出文件,我试过了

df1.groupby("Score").to_csv("Score.txt",sep="\t")
但这是行不通的。
有人知道如何制作输出文件吗?

您需要根据计数、平均值或其他来告诉分组对象

 df1.groupby("Score").count().to_csv('d.csv')

你的要求毫无意义。但是你可能没有意识到
groupby
创建一个临时区域,用于跨数据组执行聚合或转换。比如,如果我们想计算每个组的观察次数,那就是一个聚合

因为您认为可以输出为某个表,所以我猜您认为
groupby
实际上将行分组在一起。如果你以前从未见过这个词被使用过,即使它是不正确的,对它的解释也不错。这样做的方法是使用方法
sort\u values
进行排序

df1.sort_values('Score')

       Class Score
0    Physics     A
3    Biology     A
5    English     A
1    Science     B
4    History     B
2  Chemistry     C
如果分数是其他没有按字典顺序排列的东西,我们可以使用
分类类型来处理它

score = df1.Score.astype('category', categories=list('ABCDF'), ordered=True)
df1.assign(Score=score).sort_values('Score')

       Class Score
0    Physics     A
3    Biology     A
5    English     A
1    Science     B
4    History     B
2  Chemistry     C
最后,按照预期将数据输出到文件中

df1.sort_values('Score').to_csv("Score.txt", sep="\t")

这是一个解决方案,我认为它接近你想要的

df1=df1.reset_index()
df1=df1.groupby(['Score','index']).Class.apply(sum).to_frame()
df1

Out[102]: 
                 Class
Score index           
A     0        Physics
      3        Biology
      5        English
B     1        Science
      4        History
C     2      Chemistry

很好的解释~:-)这些类别很好,但它们的效果可能会在作品中消失(我也在考虑未来的读者。事实上,我正在考虑回去重写我的大量答案。我有3800个。有很多机会通过更好的解释或简单的过时来改进。如果你的问题得到了回答,请。其他问题也一样,谢谢。