python - 如何根据数据框中的先前值创建列
问题描述
我有一个数据框:
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
我可以用一个循环来做到这一点,但它看起来不太好。可以用熊猫做吗?
解决方案
使用重复:
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