我是Python的初学者,遇到了一个似乎无法解决的问题。
我根据两列对DataFrame进行了分组。我对其中一些执行了.mean()
或.std()
之类的运算,结果从该运算中得到一个Series。
我可以在公式中使用这些。
但是,我还需要将这些组变成没有操作的Series或DataFrame。当我使用以下命令打印组时:
print(object.apply(list))
结果是所需的布局。
但是如何转换这些GroupedBy对象,使其成为Series或DataFrame?
我希望有人能帮助我。
谢谢!
答案 0 :(得分:0)
要通过groupby创建数据框:
# Simple count
new_df = pandas.DataFrame({'NB' : df.groupby(['col_name1']).count()})
# groupby col1 and take the mean of col2
new_df = pandas.DataFrame({'Mean' : df.groupby(['col_name1'])['col_name2'].mean()})
答案 1 :(得分:0)
很遗憾,您没有提供示例数据或代码,因此不确定我是否正确理解了您的问题。
但是通过分组,您将得到一个包含多个数据框的对象,如果愿意,可以包含“子数据框”,因此groupby对象本身不再可以显示为简单的数据框。但是您可以对其进行迭代,获取可以轻松打印的名称和子数据框。
示例:
df = pd.DataFrame({'Col': ['blue', 'red', 'blue', 'red'], 'Val1': [12, 34, 56, 78],'Val2': [42, 53, 64, 75]})
Col Val1 Val2
0 blue 12 42
1 red 34 53
2 blue 56 64
3 red 78 75
for name, grp in df.groupby('Col'):
print(name, grp, sep='\n', end='\n\n')
blue
Col Val1 Val2
0 blue 12 42
2 blue 56 64
red
Col Val1 Val2
1 red 34 53
3 red 78 75