【发布时间】:2020-07-21 22:24:20
【问题描述】:
我正在尝试根据提供的权重从 pandas DataFrame 中随机选择一行。我尝试对这些参数使用 .sample() 方法,但无法使语法正常工作:
import pandas as pd
df = pd.DataFrame({
'label': [1,0,1,-1],
'ind': [2,3,6,8],
})
df.sample(n=1, weights=[0.5, 0.4, 0.1], axis=0)
标签是 1,0 和 -1,我想为每个标签分配不同的权重以进行随机选择。
【问题讨论】:
-
澄清一下:对于这个例子,你希望函数例如。返回“标签”为 1 50% 的行?
-
没错!它应该在 50% 的时间内返回带有标签 1 的行。
-
我不希望它基于 DataFrame 中的计数,而是预定义的权重。
-
您的权重列表比 df 中的列短。放大后就可以了。
标签: python python-3.x pandas