输入数据看起来有点像这样
import pandas as pd
df = pd.DataFrame({'users': ['John', 'Bob', 'Alice', 'John', 'Alice','Bob','Alice'],
'class': ['Economics','Economics','Economics','Maths','Maths','Physics','Physics']})应该生成随机数据,使得class不会被替换,但users可以被替换。
random_df1 = pd.DataFrame({'users': ['John', 'Bob', 'Alice'],
'class': ['Economics','Maths','Physics']})
or
random_df2 = pd.DataFrame({'users': ['John', 'John', 'Bob'],
'class': ['Economics','Maths','Physics']})发布于 2020-08-28 17:01:35
使用Series.unique获取列class中的唯一值,然后使用np.random.choice随机选择users (在给定的类中)来创建新的数据帧
df_ = pd.DataFrame([
{'users': np.random.choice(df.loc[df['class'].eq(c), 'users']), 'class': c}
for c in df['class'].unique()])结果:
print(df_)
users class
0 John Economics
1 Alice Maths
2 Alice Physics发布于 2020-08-28 16:39:00
在class列上使用groupby,然后使用sample方法从特定class中随机选择样本
df = df.groupby("class").apply(lambda x: x.sample(1)).reset_index(drop=True)输出:
users class
0 Bob Economics
1 Alice Maths
2 Bob Physicshttps://stackoverflow.com/questions/63630123
复制相似问题