创建列表 遍历dataframe_如何遍历pandas DataFrameGroupBy并为特定列选择每个分组变量的所有条目?...

我想我会这样做:

为测试创建一些数据df = pd.DataFrame({'Id':np.random.randint(1,10,100),'Type':np.random.choice(list('ABCD'),100),'Guid':np.random.randint(10000,99999,100)})

print(df.head()

Id Type Guid

0 2 A 89247

1 4 B 39262

2 3 C 45522

3 1 B 99724

4 4 C 51322

选择n作为要返回的记录数和分组依据n = 5

df_groups = df.groupby('Id')

使用for循环遍历df_组并打印for name,group in df_groups:

print('ID: ' + str(name))

print(group.head(n))

print("\n")

输出:ID: 1

Id Type Guid

3 1 B 99724

5 1 B 74182

37 1 D 49219

47 1 B 81464

65 1 C 84925

ID: 2

Id Type Guid

0 2 A 89247

6 2 A 16499

7 2 A 79956

34 2 C 56393

40 2 A 49883

.

.

.

编辑以打印列表中每个ID的所有guid,您可以使用以下命令:for name,group in df_groups:

print('ID: ' + str(name))

print(group.Guid.tolist())

print("\n")

输出:ID: 1

[99724, 74182, 49219, 81464, 84925, 67834, 43275, 35743, 36478, 94662, 21183]

ID: 2

[89247, 16499, 79956, 56393, 49883, 97633, 11768, 14639, 88591, 31263, 98729]

ID: 3

[45522, 13971, 75882, 96489, 58414, 22051, 80304, 46144, 22481, 11278, 84622, 61145]

ID: 4

[39262, 51322, 76930, 83740, 60152, 90735, 42039, 22114, 76077, 83234, 96134, 93559, 87903, 98199, 76096, 64378]

ID: 5

[13444, 55762, 13206, 94768, 19665, 75761, 90755, 45737, 23506, 89345, 94912, 81200, 91868]

.

.

.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值