使用pandas库中的groupby和sample方法结合,代码示例如下:
# 创造一组数据
import pandas as pd
import numpy as np
df = pd.DataFrame({
'组名': ['A', 'A', 'B', 'B', 'B'],
'数值': [1, 2, 3, 4, 5]
})
# 分组并随机选择
grouped = df.groupby('组名')
result = pd.DataFrame()
for name, group in grouped:
sample = group.sample(n=2, replace=False, random_state=1) # 每组选取两个不重复的数值
result = pd.concat([result, sample])
print(result)
输出结果为:
组名 数值
0 A 1
1 A 2
4 B 5
3 B 4
这段代码使用groupby方法将数据按照“组名”列分组,然后在每个组里面使用sample方法随机选择不重复的两个数值。最后用concat方法将不同组的选择结果合并为一个DataFrame。