比较 Pandas 中的 excel 数据集

数据挖掘 Python 熊猫 擅长
2022-02-15 14:29:52

对 Python 来说非常新,但作为 SEO,我正在研究在我的工作流程中使用笔记本的好处。

我有两个 excel 文件,我已经使用 pandas 清理并导入到新笔记本中。

我正在尝试比较位置变化并创建一个带有新列的新数据框,以显示以前的、新的和位置的变化。

看看屏幕截图[!下面的数据。提前致谢。

数据框1 数据框2

1个回答

pandas.DataFrame.join如果你知道这是如何工作的,你可以做一个。

-- 编辑:merge显然是一个更好的选择:见最后的例子。

我认为您需要outer加入Keyword.

这应该给出一个新的 DataFrame,其中包含Keyword两个表中的唯一行。某些条目可能为 NULL/None。这表明在旧表或新表中,关键字不存在,您应该将其视为新关键字或已从列表中删除的关键字。

适当地重命名新表中的列,然后在列之间应用一个智能值,考虑到某些值是 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.0