【发布时间】:2019-10-07 06:27:36
【问题描述】:
我正在尝试比较具有相同结构(相同维度、列名、行名等)的两个数据帧(df1、df2)并保持两个数据帧之间的最大值。我实际上有数百列和行,但这里有一些假数据:
df1:
Date Fruit Num Color
2013-11-24 Banana 2 Yellow
2013-11-24 Orange 8 Orange
2013-11-24 Apple 7 Green
2013-11-24 Celery 10 Green
df2:
Date Fruit Num Color
2013-11-24 Banana 22 Yellow
2013-11-24 Orange 8 Orange
2013-11-24 Apple 7 Green
2013-11-24 Celery 1 Green
有很多关于 SO 做类似事情的例子,但在 python 中不是 R: Comparing two dataframes and getting the differences, Compare two dataframes to get comparison value in in another dataframe 等等
我尝试了 dplyr 方法,但我不知道如何为所有列(数百列)正确执行此操作。
library(dplyr)
test <- rbind(df1, df2)
test2 <- test %>%
group_by(Date) %>%
summarise(max = max(.))
鉴于我上面的假数据,所需的输出应该是:
new.df:
Date Fruit Num Color
2013-11-24 Banana 22 Yellow
2013-11-24 Orange 8 Orange
2013-11-24 Apple 7 Green
2013-11-24 Celery 10 Green
感谢您的帮助。
【问题讨论】:
-
您可以按日期、水果和颜色将表格连接在一起,然后
mutate一个具有两个 Num 值最大值的新列。 -
这听起来也是一个不错的方法 - 我会看看我是否能弄清楚如何......