【发布时间】:2018-06-22 05:18:29
【问题描述】:
我有一个像这样的大熊猫数据框:
log apple watermelon orange lemon grapes
1 1 1 yes 0 0
1 2 0 1 0 0
1 True 0 0 0 2
2 0 0 0 0 2
2 1 1 yes 0 0
2 0 0 0 0 2
2 0 0 0 0 2
3 True 0 0 0 2
4 0 0 0 0 2.1
4 0 0 0 0 2.1
如何标注相同的行,例如:
log apple watermelon orange lemon grapes ID
1 1 1 yes 0 0 1
1 2 0 1 0 0 2
1 True 0 0 0 2 3
2 0 0 0 0 2 4
2 1 1 yes 0 0 1
2 0 0 0 0 2 4
2 0 0 0 0 2 4
3 True 0 0 0 2 3
4 0 0 0 0 2.1 5
4 0 0 0 0 2.1 5
我尝试过:
df['ID']=df.groupby('log')[df.columns].transform('ID')
和
df['personid'] = df['log'].clip_upper(2) - 2*d.duplicated(subset='apple')
df
但是,上面的方法不起作用,因为我确实有很多列。
但它没有给我预期的输出。知道如何对这个数据框进行分组和标记吗?
【问题讨论】:
-
是的,但问题是我有 500 列 @skrubber
-
您可能想看看
duplicated和drop_duplicatesPandas 函数。
标签: python python-3.x pandas