熊猫-遍历groupBy结果时获取一行数据

施洛米·施瓦兹(Shlomi Schwartz)

使用以下Pandas DataFrame:

>>> df = pd.DataFrame({"id":[1,2,1,2],"name":['a','b','a','c'],"val_1":[1,2,3,4],"val_2":[5,6,7,8]})
>>> df
   id name  val_1  val_2
0   1    a      1      5
1   2    b      2      6
2   1    a      3      7
3   2    c      4      8

我按ID和名称对数据帧进行分组,因此可以一次遍历每个组数据:

>>> grp = df.groupby(['id','name'])
<pandas.core.groupby.groupby.DataFrameGroupBy object at 0x103334c88>

现在,我遍历每个组的行并打印出来:

>>> for name,group in grp:
...     for row,data in group.iterrows():
...             print(data)
... 
id       1
name     a
val_1    1
val_2    5
Name: 0, dtype: object
id       1
name     a
val_1    2
val_2    6
Name: 1, dtype: object
id       2
name     b
val_1    3
val_2    7
Name: 2, dtype: object
id       2
name     c
val_1    4
val_2    8
Name: 3, dtype: object

我要获取的行是:

   id name  val_1  val_2
0   1    a      1      5
   id name  val_1  val_2
1   1    a      2      6
   id name  val_1  val_2
2   2    b      3      7
   id name  val_1  val_2
3   2    c      4      8

我该如何实现?

佛朗哥·皮科洛(Franco Piccolo)

将打印更改为:

print(pd.DataFrame(data).T)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章