我正在尝试创建一个NEW_ID
列,其中每个完全匹配的值为FIRST_NM
,LAST_NM
。为大熊猫数据框中两列的每次完全匹配创建一个随机数列。
data = np.array([['John', 'Smith', 1], ['John', 'West', 7], ['Eric', 'Adams', 9],
['Jane', 'Doe', 14], ['Jane', 'Doe', 16], ['John', 'Smith', 19]])
df = pd.DataFrame(data, columns=['FIRST_NM', 'LAST_NM', 'PAGE_NUM'])
FIRST_NM LAST_NM PAGE_NUM
0 John Smith 1
1 John West 7
2 Eric Adams 9
3 Jane Doe 14
4 Jane Doe 16
5 John Smith 19
所需的数据框:
FIRST_NM LAST_NM PAGE_NUM NEW_ID
0 John Smith 1 654
1 John West 7 123
2 Eric Adams 9 78
3 Jane Doe 14 3
4 Jane Doe 16 3
5 John Smith 19 654
我想我应该做类似下面的代码,但我知道这是不对的......
import random
df.groupby(['FIRST_NM', 'LAST_NM']).apply(lambda group: random.getrandbits(16))
你是否考虑过使用一些好的散列函数? –
@SeverinPappadeux听起来像这可能是一个好主意。你能举一个例子吗? – blahblahblah
当然,请参阅答案 –