【发布时间】:2021-12-13 19:34:47
【问题描述】:
我有一个包含多行的数据框。有些行是重复的,但我想将这些重复与其余行一起考虑在内。我想为从 100 开始的每一行分配一个数字,当遇到重复时,它看起来更像 100、101、101、102、103、103、103 等等,重复的数字是列出的更多不止一次。
感谢@Cleb,我已经使用了我在这里找到的代码,但是,它并不是我想要的,我已经搞砸了一段时间,希望我能做到这一点无济于事。我还是 Python 新手,我什至可能没有使用正确的方法。
代码:
d = {ni: indi for indi, ni enumerate(df, start=100)}
index = [d[ni] for ni in df]
数据:
data = { 'ID':['161464','146446','146446','368416','464344','464344','464344'],
'Name':['Jen','Zach','Zach','Rachel','Scott','Scott','Scott']}
到目前为止,输出确实计算了重复项,但是,它在重复项计数的尾部开始分配的数字。例如。 100, 105, 105, 105, 105, 105 106,... 等等。 如果您有任何问题,请告诉我,感谢您的帮助。
【问题讨论】:
-
pd.factorize(df['ID'])[0]或df.groupby('ID')['ID'].transform('ngroup')。