Python 将groupby操作的输出保存到CSV
我想问一个关于熊猫群比的问题。 我正在使用ipython笔记本电脑(python3) 例如,有这样一个数据帧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") 我需要这个的输出文件,我试过了
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个。有很多机会通过更好的解释或简单的过时来改进。如果你的问题得到了回答,请。其他问题也一样,谢谢。