以下是一个示例代码,可以按照列值进行分组和随机抽样:
import pandas as pd
import numpy as np
# 创建一个示例数据集
data = pd.DataFrame({
'group': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
'value': [1, 2, 3, 4, 5, 6, 7, 8]
})
# 按照 'group' 列进行分组
grouped = data.groupby('group')
# 随机抽样每个分组的一个样本
sample = grouped.apply(lambda x: x.sample(n=1)).reset_index(drop=True)
print(sample)
输出结果可能如下:
group value
0 A 1
1 B 3
2 C 6
在示例代码中,首先导入了 pandas 和 numpy 库。然后,创建了一个示例数据集 data
,其中包含两列:'group' 列用于分组,'value' 列是待抽样的值。
接下来,使用 data.groupby('group')
将数据按照 'group' 列进行分组,得到一个 GroupBy
对象 grouped
。
然后,使用 grouped.apply()
结合 lambda
函数来对每个分组执行抽样操作。在这个示例中,我们使用 x.sample(n=1)
对每个分组进行随机抽样,抽取一个样本。最后,通过 reset_index(drop=True)
来重置索引。
最后,将抽样结果打印出来。
上一篇:按照列值进行分组并求和