我有以下數據幀:
d = {'col1':['a','b','c','b','a','c','c','c'],'col2':[1,2,3,4,5,6,7,8]}
df = pd.DataFrame(data=d)
我想知道如何將'a'
更改為1
,'b'
更改為0
,將'c'
的50%更改為1
,其余的50%隨機更改為col1
?
所以col1
看起來像這樣[1,0,1,0,1,0,0,1]
我有以下數據幀:
d = {'col1':['a','b','c','b','a','c','c','c'],'col2':[1,2,3,4,5,6,7,8]}
df = pd.DataFrame(data=d)
我想知道如何將'a'
更改為1
,'b'
更改為0
,將'c'
的50%更改為1
,其余的50%隨機更改為col1
?
所以col1
看起來像這樣[1,0,1,0,1,0,0,1]
公眾號:1024技術圈
?? 提供互聯網知識和資訊,分享IT前沿技術,熱門資源,大廠面試題 ??
將值按
c
比較為Series.eq
的掩碼,然后使用Series.map
按字典設置值,最后按Series.sample
設置50%的值。僅過濾值:或者,您可以過濾值并將
False
值添加到Series.reindex
上,以獲得大小類似原始DataFrame
的掩碼:Numpy solution with
numpy.random.choice
: