我正在尝试从满足条件的数据框中选择2个随机值。请在下面查看示例df:
data = {'col1': ['abc', 'def','ghi','jkl','mno','pqr','stu','vwx','yz'],
'col2': ['4', '1','4','4','0','1','4','2','4'],
'col3': ['Sweden', 'Malaysia','Sweden','Venezuela','France','Sweden','Australia','Belgium','Sweden']
}
df = pd.DataFrame (data, columns = ['col1','col2','col3'])
我想从'col1'中选择2个随机值,其中'col2'等于4。然后使用的代码是:
print(df['col1'].sample(n=2).where(df['col2']==4))
所需的输出为:
0 abc
6 stu
....要么
8 yz
2 ghi
但是,代码当前提供的输出如下:
7 NaN
3 NaN
这是不希望的,因为a)我期望看到一个字符串值作为文本,并且b)对应于第3行的值将满足条件,而对应于第7行的值不满足,因此该条件未满足所有情况。
问题:
.where(df['col2']==4) & (df['col3']=='Sweden')
感谢这里的任何指导。
也许先过滤数据会更容易。我不确定您是否特别想使用,.where()
但如果不是,这也将有助于您下一步添加更多条件。
另外,我认为部分问题是在df中,col2值是字符串,因此您需要让公式查找“ 4”而不是数字4。
df.loc[df['col2'] == '4','col1'].sample(n=2)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句