合并两个数据框后,观察结果消失了。
我有两个看起来像这样的数据框:
df_1
text user
bla bla bla user1
ga ga ga ga user1
bur bur bur user2
. .
df_2
user url
user1 asd.com
user2 dsa.com
. .
我使用第一个用户的唯一列表来通过Web抓取他们的数据并构建第二个。我想将它们合并成这样:
df_merged
text user url
bla bla bla user1 asd.com
ga ga ga ga user1 asd.com
bur bur bur user2 dsa.com
. . .
我通过以下方式合并它们:
df_merged = df_1.merge(df_2, on = 'user', validate = "m:m")
问题在于合并后的观测值随机消失,例如:
len(df_1['user'].drop_duplicates())
返回11115
len(df_2['user'])
返回11115
len(df_merged['user'].drop_duplicates())
返回7076
df_1包含约70k观测值,而df_merged包含约30k观测值
有人知道发生了什么事吗?
答案 0 :(得分:0)
请考虑使用“ outer”,“ left”或“ right”参数来修改联接以保留两个数据框中的所有联接。如果有帮助,这类似于SQL连接命令。
例如,如果您将代码修改为以下内容:
df_merged = df_1.merge(df_2, how='outer',on = 'user', validate = "m:m")
返回答案时,您可能会发现对于某些合并操作,该行中将有相应的空白值。
应该对这些进行询问,以确定如何最好地处理您的数据。 要使用空白值查找这些行,可以查看stackoverflow中的以下帖子:How to select rows with nan in particular column
有关可以传递的其他参数的更多信息,请查看此处Merge documentation。