将列表中的值插入熊猫数据框

时间:2020-08-19 23:22:08

标签: python pandas

我有一个熊猫数据框,我想更新一列。目前,格式与许多行相似。如果值等于D,我想从列表中随机选择以替换该值。例如:

Values
A
B
C
D

my_list = ["E", "F", "G"]

df['Values'] = pd.np.where(df['Values'].str.contains("D"), random.choice(my_list), df['Values'])

执行此操作时,它仅获取一个值,例如说“ F”,并替换所有“ D”。我想逐行随机分布。例如,如果我替换100个D,则可能会得到40个“ E”,25个F和35个G。关于如何进行调整的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以分配

m = df['Values'].str.contains("D")

df.loc[m,'Values']=np.random.choice(my_list,m.sum())
df
Out[27]: 
  Values
0      A
1      B
2      F
3      E