gpt4 book ai didi

Python 如何根据唯一的客户 ID 将数据框分成两个大小相等的组?

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:53 25 4
gpt4 key购买 nike

我有一个包含客户 ID 的交易数据框,如下所示

ID
1
1
1
2
2
3
3
3
3
4
4

我想随机将这个数据集分成 2 个其他数据集(data1data2,它们具有相同数量的独特IDs,重要的是split是随机的,输出可以如下

对于data1:

ID
2
2
4
4

对于data2:

ID
1
1
1
3
3
3
3

我怎样才能在 python/pandas 中轻松地做到这一点?谢谢。

最佳答案

获取列表中的唯一 ID 并将列表分成两半:

In [28]: import random

In [29]: df
Out[29]:
ID
0 1
1 1
2 1
3 2
4 2
5 3
6 3
7 3
8 3
9 4
10 4

In [32]: ids = df.ID.unique()

In [33]: random.shuffle(ids)

In [34]: n = len(ids)

In [35]: ids1, ids2 = ids[:n/2], ids[n/2:]

In [36]: ids1
Out[36]: array([1, 2])

In [37]: ids2
Out[37]: array([3, 4])

In [39]: df1 = df[df.ID.isin(ids1)]

In [40]: df2 = df[df.ID.isin(ids2)]

In [41]: df1
Out[41]:
ID
0 1
1 1
2 1
3 2
4 2

In [42]: df2
Out[42]:
ID
5 3
6 3
7 3
8 3
9 4
10 4

关于Python 如何根据唯一的客户 ID 将数据框分成两个大小相等的组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27005833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com