首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas中excel数据集的比较

Pandas中excel数据集的比较
EN

Data Science用户
提问于 2020-01-19 15:55:17
回答 1查看 289关注 0票数 1

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

我有两个excel文件,我已经清理和导入到一个新的笔记本使用熊猫。

我正在尝试比较位置变化,并创建一个新的dataframe和新列,以显示以前的、新的和位置上的更改。

看一看截图[!下面的数据。提前谢谢。

EN

回答 1

Data Science用户

回答已采纳

发布于 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

编辑:

极简主义的例子:

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
    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
票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/66710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档