Python通过内连接合并Pandas数据集有两个字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python通过内连接合并Pandas数据集有两个字段相关的知识,希望对你有一定的参考价值。

我是社区内的全新人选,所以我希望你能有点耐心。我试图通过在“邮政编码”和“日期”字段上使用内部联接来合并两个数据集。 orgininal代码将是这样的:

Datapump = pd.merge(hack, health, how='inner', left_on=['Date', 'CP'], right_on=['Creation', 'cp'])

但问题是,每当我尝试执行头部时,我会得到一个空数据集,而在执行样本的情况下,我会得到最差的错误:所以我将hack字段'Date'和健康字段'Creation'作为索引。然后我去参加。

Datapump = pd.merge(hack, health, how='inner', left_index=True, right_index=True)

不幸的是,我还需要现场邮政编码。所以我在下面的点Datapump = pd.merge(hack, health, how='inner', left_on=['CP'], right_on=['cp'])做另一次加入

现在我可以得到样本和头部,但是根据我的说法,任何事情都会变得奇怪,特别是一旦我看到新数据集的条目数量:

<class 'pandas.core.frame.DataFrame'>

Int64Index:803206条目,0到803205数据列(共15列):CP 803206非空对象Tipo Contaminante 803206非null int64 Valor 803206非null float64已验证803206非null对象nombre 803206非null对象edad 801296非-null object cp 803206非null对象patologia 802387非空对象创建803206非null datetime64 [ns] Edad_Cat 786829非null类别持续时间772661非null timedelta64 [ns] Duration_Seconds 772661非null float64 weekdays_created 803206非null int64 month 803206非null float64 cat_month 803206非null int64 dtypes:category(1),datetime64ns,float64(3),int64(3),object(6),timedelta64ns内存使用情况:92.7+ MB

实际上,在健康状况之前,大约有9000个条目并且大约有6000个条目。不能通过执行内连接来获取803.206条目的数据集。

如何以能够提供有意义且合理的结果的方式进行内部联接?

非常感谢耐心。

安德里亚

答案

最终我能够解决这个问题。问题是由于数据框内存在问题。我打开orginial csv文件并手动清理有问题的行。然后我重新导入新文件,我就能够进行连接。此致,安德烈

以上是关于Python通过内连接合并Pandas数据集有两个字段的主要内容,如果未能解决你的问题,请参考以下文章

python数据分析之pandas数据合并

python数据分析之pandas数据合并

python数据分析之pandas数据合并

Python使用pandas读取两个或者多个excel文件(xlsx)并进行数据连接(join)合并两个或者多个excel的信息

Python - Pandas Dataframe 以正确的方式合并两个数据框

基于多列值的具有重复键的两个大型 Pandas DataFrame 的条件合并/连接 - Python