我有两个数据帧,df1和df2,每一个都包含不同的信息和不同的长度,但是有一个共同的列'DAY',尽管并不总是具有相同的值。对于上下文,一个数据帧包含降水量的记录,另一个包含洪水事件及其大小的记录。我想把它们结合起来,这样我就可以很容易地比较什么样的降水条件与洪水事件有关。df1(降水量)如下所示:
D M Y DAY Tpcp MaxInt
30 9 2010 5553 20.8 2.2
1 10 2010 5554 14 1.8
2 10 2010 5555 61.8 1.8
3 10 2010 5556 30 1.2
4 10 2010 5557 68.4 1
5 10 2010 5558 10.2 1
6 10 2010 5559 82.8 2.2
7 10 2010 5560 54.6 2.2
10 10 2010 5563 11.4 1.8
df2(泛洪)如下所示:
D M Y DAY Size
12 5 2009 5047 2
3 9 2009 5161 2
13 4 2010 5383 3
14 4 2010 5384 3
16 7 2010 5477 2
4 10 2010 5557 3
6 10 2010 5559 3
30 4 2011 5765 2
22 5 2011 5787 2
27 5 2011 5792 2
9 11 2011 5958 2
洪水并不是每天都有雨,所以我的目标是这样的,当没有任何事件发生时,用0表示:
D M Y DAY Tpcp MaxInt FldSz
30 9 2010 5553 20.8 2.2 0
1 10 2010 5554 14 1.8 0
2 10 2010 5555 61.8 1.8 0
3 10 2010 5556 30 1.2 0
4 10 2010 5557 68.4 1 3
5 10 2010 5558 10.2 1 3
6 10 2010 5559 82.8 2.2 0
7 10 2010 5560 54.6 2.2 0
10 10 2010 5563 11.4 1.8 0
同样,我认为最简单的方法是根据“DAY”进行合并。也许这是一个非常明显的任务,如果是道歉(我是新来的),但我找不到任何答案,我认为适合的问题,并想知道是否有一些建议在那里。。。提前感谢您的任何想法和贡献:)
我相信你需要pandas.join。你知道吗
并将size列/fill N/A重命名为0's
使用
merge
是正确的,但是在执行合并时需要设置how="outer"
。你知道吗设置
how="left"
将返回最左边表中的所有行(本例中为df1
),即使df2
中没有匹配的记录。对于没有匹配记录的记录,NaN
将填充df2
列,其中df1
中没有记录。你知道吗看看这能否解决你的意思:
相关问题 更多 >
编程相关推荐