gpt4 book ai didi

python - 使 DataFrame 相对于特定列保持平衡

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

我有一个 Python 中的 DataFrame,如下所示。

  Text  Label
0 abc 0
1 def 1
2 ghi 1
3 . .
4 . .
5 . .

标签为“1”的行有 100 行,标签为“0”的行只有 50 行。我想要一个平衡集,以便有 50 行标签为“0”和 50 行标签为“1”。哪些带有标签“1”的行被丢弃并不重要。

有没有用 Python 写这个的简洁方法?

最佳答案

使用groupbyhead:

df = df.groupby('Label').head(50)

这将从 Label 分别为 0 和 1 的行的每个子集中取出前 50 个。对于标签为 1 的行,将选择前 50 个,其余的将被丢弃。

要选择最后 50 个,请将 head(50) 替换为 tail(50)

要随机选取 50 行,请使用 apply + sample:

df = (df.groupby('Label', as_index=False)
.apply(lambda x: x.sample(n=50))
.reset_index(drop=True))

请注意,如果任何组的项目少于 N (=50),这将不起作用。

关于python - 使 DataFrame 相对于特定列保持平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52935324/

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