Python中为DataFrame随机生成100条M/F性别数据的方法
Python生成100条随机性别DataFrame样本实现
直接用numpy的随机抽样能力搭配pandas就能搞定,不需要写复杂逻辑,不手动固定随机种子的话每次运行结果都是随机的,也不会强制男女50:50的比例。
完整代码
import pandas as pd import numpy as np # 生成100条M/F随机性别数据,直接构建为DataFrame df = pd.DataFrame({ "gender": np.random.choice(["M", "F"], size=100) }) # 打印前10条样本查看效果 print(df.head(10)) # 可选:打印本次抽样的性别分布,能直观看到每次比例都不固定 print("\n本次抽样性别统计:") print(df["gender"].value_counts())
补充说明
- 核心逻辑是
np.random.choice的有放回随机抽样,默认每次抽中M、F的概率各为50%,但因为是纯随机过程,最终100条样本的比例不会被强制锁死在1:1,经常会出现47:53、52:48这类随机分布结果。 - 代码里没有设置固定随机种子,每次运行时Python会自动拉取当前系统状态作为随机数生成的输入,所以每次跑出来的抽样结果都不一样。
- 如果后续需要调整男女的抽样权重,比如想让男性样本的整体出现概率更高,只要给
np.random.choice传个概率参数就行,示例:# 每次抽中M的概率60%,抽中F的概率40% np.random.choice(["M", "F"], size=100, p=[0.6, 0.4])
要是你跑代码发现每次结果都一样,检查下是不是其他代码块里提前设置了全局numpy随机种子,把那行代码删掉就能恢复随机效果。
内容的提问来源于stack exchange,提问作者Cossie
相关产品推荐
相关产品推荐

