Python非常新,但作为SEO,我正在研究在我的工作流程中使用笔记本的好处。
我有两个excel文件,我已经清理和导入到一个新的笔记本使用熊猫。
我正在尝试比较位置变化,并创建一个新的dataframe和新列,以显示以前的、新的和位置上的更改。
看一看截图[!下面的数据。提前谢谢。


发布于 2020-01-19 16:15:52
如果您知道这是如何工作的,您可以做一个pandas.DataFrame.join。
-编辑:merge显然是一个更好的选择:参见最后的例子。
我认为您需要在outer上加入Keyword。
这将提供一个新的DataFrame,其中包含两个表中的Keyword的唯一行。有些条目可能为NULL/None。这表示在旧表或新表中,关键字不存在,您应该将is视为新关键字,或从列表中删除的关键字。
适当地重命名新表中的列,然后在列之间应用一个智能值,同时考虑到某些值为NULL。
您可以在Excel中做类似的事情:https://superuser.com/questions/1023123/how-to-simulate-a-full-outer-join-in-excel
编辑:
极简主义的例子:
import pandas as pd
old = pd.DataFrame({'keyword': ['football', 'soccer', 'rugby'], 'position': [2, 1, 3]})
new = pd.DataFrame({'keyword': ['hockey', 'rugby', 'soccer'], 'position': [3, 2, 1]})
old.keyword = old.keyword.astype(str)
new.keyword = new.keyword.astype(str)
old.set_index(['keyword'])
new.set_index(['keyword'])
old = old.rename(columns={"position": "position_old"})
new = new.rename(columns={"position": "position_new"})
print(old)
print(new)
merged = pd.merge(old, new, how='outer', on='keyword')
print(merged)输出:
keyword position_old
0 football 2
1 soccer 1
2 rugby 3
keyword position_new
0 hockey 3
1 rugby 2
2 soccer 1
keyword position_old position_new
0 football 2.0 NaN
1 soccer 1.0 1.0
2 rugby 3.0 2.0
3 hockey NaN 3.0https://datascience.stackexchange.com/questions/66710
复制相似问题