我有一个像
这样的数据帧 used_at common users pair of websites
0 2014 1364 avito.ru and e1.ru
1 2014 1364 e1.ru and avito.ru
2 2014 1716 avito.ru and drom.ru
3 2014 1716 drom.ru and avito.ru
4 2014 1602 avito.ru and auto.ru
5 2014 1602 auto.ru and avito.ru
6 2014 299 avito.ru and avtomarket.ru
7 2014 299 avtomarket.ru and avito.ru
8 2014 579 avito.ru and am.ru
9 2014 579 am.ru and avito.ru
表示所有字符串都重复的年份2014
和2015
。我需要打印我的数据,如
used_at common users pair of websites
0 2014 1364 avito.ru and e1.ru
1 2015 1208 avito.ru and e1.ru
2 2014 1716 avito.ru and drom.ru
3 2015 897 avito.ru and drom.ru
我想删除重复的字符串,而是将每对打印到第一个输出2014
然后2015
。
我试着这样做:
all_common_users = df.groupby([df['used_at'].dt.year]).apply(f).reset_index(drop=True, level=1).reset_index()
common_users = all_common_users.groupby(all_common_users.index / 2).first().sort_values('pair of websites')
# keep only 'interesting' columns
common_users = common_users[['pair of websites','used_at','common users']]
common_users.columns = ['pair of websites','year','common users']
df = common_users[common_users.groupby('pair of websites')['common users']].sort_values('pair of websites', ascending=False).reset_index()
但它打印不正确。我做错了什么?
答案 0 :(得分:0)
您可以使用pandas.DataFrame.drop_duplicates:
df.drop_duplicates(subset=["used_at", "common users"])
used_at common users pair of websites
0 2014 1364 avito.ru and e1.ru
2 2014 1716 avito.ru and drom.ru
4 2014 1602 avito.ru and auto.ru
6 2014 299 avito.ru and avtomarket.ru
8 2014 579 avito.ru and am.ru
subset
:
列标签或标签序列,可选仅考虑确定 用于标识重复项的列,默认情况下使用所有列