【发布时间】:2020-08-07 13:40:18
【问题描述】:
我有两个数据框。数据框如下:
df1 is
numbers
user_id
0 9154701244
1 9100913773
2 8639988041
3 8092118985
4 8143131334
5 9440609551
6 8309707235
7 8555033317
8 7095451372
9 8919206985
10 8688960416
11 9676230089
12 7036733390
13 9100914771
it's shape is (14,1)
df2 is
user_id numbers names type duration date_time
0 9032095748 919182206378 ramesh incoming 23 233445445
1 9032095748 918919206983 suresh incoming 45 233445445
2 9032095748 919030785187 rahul incoming 45 233445445
3 9032095748 916281206641 jay incoming 67 233445445
4 jakfnka998nknk 9874654411 query incoming 25 8571228412
5 jakfnka998nknk 9874654112 form incoming 42 678565487
6 jakfnka998nknk 9848022238 json incoming 10 89547212765
7 ukajhj9417fka 9984741215 keert incoming 32 8548412664
8 ukajhj9417fka 9979501984 arun incoming 21 7541344646
9 ukajhj9417fka 95463241 paru incoming 42 945151215451
10 ukajknva939o 7864621215 hari outgoing 34 49829840920
and it's shape is (10308,6)
在 df1 中,列名编号具有多个唯一编号。这些数字在 df2 中可用,并且根据持续时间重复这些数字。我想根据 df1 中可用的数字获取所有存在于 df2 中的数据。
这是我尝试获取的代码,但我无法弄清楚如何使用 pandas 解决它。
df = pd.concat([df1, df2]) # concat dataframes
df = df.reset_index(drop=True) # reset the index
df_gpby = df.groupby(list(df.columns)) #group by
idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1] #reindex
df = df.reindex(idx)
它只给了我 df2 中唯一的数字列。但我需要从第二个数据框中获取所有数据,包括其他列。
如果有人能在这方面帮助我,那就太好了。提前致谢。
【问题讨论】:
标签: python-3.x pandas dataframe join