首页 > 解决方案 > 如何根据数据框中的先前值创建列

问题描述

我有一个数据框:

user_id      url
111          google.com
111          youtube.com
111          youtube.com
111          google.com
111          stackoverflow.com
111          google.com
222          twitter.com
222          google.com
222          twitter.com

我想创建一个列来显示之前访问此 URL 的事实。

期望的输出:

user_id      url                 target
111          google.com          0
111          youtube.com         0
111          youtube.com         1
111          google.com          1
111          stackoverflow.com   0
111          google.com          1
222          twitter.com         0
222          google.com          0
222          twitter.com         1

我可以用一个循环来做到这一点,但它看起来不太好。可以用熊猫做吗?

标签: pythonpandas

解决方案


使用重复

df['target'] = df.duplicated().astype(int)
print(df)

输出

   user_id                url  target
0      111         google.com       0
1      111        youtube.com       0
2      111        youtube.com       1
3      111         google.com       1
4      111  stackoverflow.com       0
5      111         google.com       1
6      222        twitter.com       0
7      222         google.com       0
8      222        twitter.com       1

推荐阅读