我想用为每个变量随机生成的变量替换 CSV 文件中的变量。
例如,将“不可用”更改为“男性”或“女性”
示例:
Number Sex
0 Female
1 Male
2 Not Available
3 Male
4 Not Available
随机变化后:
Number Sex
0 Female
1 Male
2 Female
3 Male
4 Male
import pandas as pd
import random
def RandomSex():
return random.choice(['Male','Female'])
df = pd.read_csv(r'data.csv')
df2 = df.loc[: , 'Sex']
print(df2)
df.loc[(df.Sex == 'Not Available'),'Gender'] = RandomSex()
print(df2)
但这会将所有“不可用”更改为所有“男性”或所有“女性”
最佳答案
您可以先获取"Not Available"
的数量,然后查找choices。使用列表中的 random.choices
而不是仅选择一个(random.choice
所做的):
not_availables = df.Sex.eq("Not Available")
num_not_availables = not_availables.sum()
choice_list = ["Male", "Female"]
new_values = random.choices(choice_list, k=num_not_availables)
df.loc[not_availables, "Sex"] = new_values
得到(例如)
Number Sex
0 Female
1 Male
2 Male
3 Male
4 Female
关于python - 在文件中写入了一些变量名,需要使用 python 将其替换为新生成的随机值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67635809/