首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据月份和位置合并两个数据集

根据月份和位置合并两个数据集
EN

Stack Overflow用户
提问于 2020-08-12 21:22:38
回答 2查看 59关注 0票数 0

我有两个数据集,包括叶绿素浓度(chl a,yr 1970 - 2020)和二氧化碳逸度(fco2y,yr 2002 - 2020)的月度气候。其中一个数据集具有year值,但另一个数据集仅具有month值。有没有办法使用python只根据位置和月份属性来合并数据?我需要聚合数据以符合回归模型。

数据集1

代码语言:javascript
复制
+--------+-----------+------------+-------+
|  lat   |    lon    |  chlor_a   | month |
+--------+-----------+------------+-------+
| 78.375 | 23.125006 |  2.1265152 |     1 |
| 78.375 |  23.20834 |  2.1265152 |     2 |
| 78.375 | 23.291674 |  2.1265152 |     2 |
| 78.375 |  24.95834 | 0.31348512 |     1 |
| 78.375 | 25.041674 | 0.31348512 |     3 |
+--------+-----------+------------+-------+

数据集2

代码语言:javascript
复制
+----------+------+-------+--------------------+--+
|   DATE   |  LAT |  LON  |  FCO2_AVE_WEIGHTED |  |
+----------+------+-------+--------------------+--+
| 15-02-70 |  9.5 | 156.5 |            303.672 |  |
| 15-02-70 |  9.5 | 157.5 |            311.013 |  |
| 15-02-70 |  9.5 | 158.5 |            321.322 |  |
| 15-02-70 | 10.5 | 155.5 |            305.066 |  |
+----------+------+-------+--------------------+--+
EN

回答 2

Stack Overflow用户

发布于 2020-08-12 22:08:59

如果date列是datetime格式,则将其转换为字符串数据类型,并将其拆分为'-‘,这样,在使用df1.merge(df2,left_on=df1列名,right_on=df2列名)合并两个数据帧之后,您将获得表2中的month。

票数 0
EN

Stack Overflow用户

发布于 2020-08-12 23:18:50

正如Mohd已经提到的,你基本上可以通过两个pandas标准函数来实现这一点。我只是快速地为你的问题编写了一个现成的解决方案。请看一看pandas文档,了解更多信息。

代码语言:javascript
复制
import pandas as pd

df1 = pd.DataFrame([[78.375,23.125006,2.1265152,1],[78.375,23.20834,2.1265152,2],[78.375,23.291674,2.1265152,2],[78.375,24.95834,0.31348512,1],[78.375,25.041674,0.31348512,3]],columns=['lat','lon','chlor_a','month'])

df2 = pd.DataFrame([['15-02-70',9.5,156.5,303.672],['15-02-70',9.5,157.5,311.013],['15-02-70',9.5,158.5,321.322],['15-02-70',10.5,155.5,305.066]],columns=['DATE','LAT','LON','FCO2_AVE_WEIGHTED'])

df2['DATE'] = pd.to_datetime(df2['DATE'])
df2['month'] = pd.DatetimeIndex(df2['DATE']).month
df2 = df2.rename(str.lower, axis='columns')
df2 = df2.merge(df1,on=['lat','lon','month'],how='outer')
print(df2)

我希望它能对你有所帮助。Pandas确实是一个强大的库,它可以很容易地实现所需的功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63377459

复制
相关文章

相似问题

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