如何合并两个不同长度的数据帧?

独自的

我有2个数据框。如下:

df1
Date    Duration
6/27/2014   10.00
6/30/2014   20.00
7/11/2014   15.00

df2
Date    Percent_Removal
6/27/2014   20.39
6/30/2014   27.01
7/7/2014    49.84
7/11/2014   59.48
7/17/2014   99.04

我想基于df1中的“日期”列合并这2个数据帧。输出应如下所示:

df3
Date    Duration_sum    Percent_Removal
6/27/2014   10.00        20.39
6/30/2014   20.00        27.01
7/11/2014   15.00        59.48

我尝试了以下功能:

df1$Date <- as.Date (df1$Date, format= "%m/%d/%Y")
df2$Date <- as.Date (df2$Date, format= "%m/%d/%Y")
df3<- as.data.frame (merge(df1,df2,by.x = "Date",all.x = TRUE))

我的输出是:

df3

 Date      Duration_sum   Percent_Removal
6/27/2014     10.00           NA
6/30/2014     20.00           NA
7/11/2014     15.00           NA

如果有人可以帮助我解决这个问题,我将不胜感激。提前致谢。

dww

这对于评论来说太长了,但是实际上只需要证明我在评论中给出的解决方案确实有效即可。如果您在合并工作方面遇到问题,那么您的数据肯定还有其他问题,我们无法诊断,因为您没有提供数据的传输。

df1 = read.table(text = 
"Date    Duration
6/27/2014   10.00
6/30/2014   20.00
7/11/2014   15.00",
header = T)

df2 = read.table(text = 
"Date    Percent_Removal
6/27/2014   20.39
6/30/2014   27.01
7/7/2014    49.84
7/11/2014   59.48
7/17/2014   99.04",
header = T)

df1$Date <- as.Date (df1$Date, format= "%m/%d/%Y")
df2$Date <- as.Date (df2$Date, format= "%m/%d/%Y")

df3 = merge(df1,df2)
#         Date Duration Percent_Removal
# 1 2014-06-27       10           20.39
# 2 2014-06-30       20           27.01
# 3 2014-07-11       15           59.48

请注意,不需要在merge语句中指定其他选项,因为

  1. 缺省值by =是两个数据框共有的列名。在这种情况下,仅Date被共享。
  2. 的默认值all.xall.yall给出所需的行为,即仅保留两个数据帧中的行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 R 中合并具有不同长度和两个条件的两个数据帧?

如何通过循环而不合并R中的两个不同长度的数据帧来合并?

如何合并两个不同长度的数据帧,一个是另一个的子集

在具有不同实例数的特定列上合并两个不同长度的数据帧

按组 ID 合并两个不同长度的数据帧

连接两个不同长度的数据帧

熊猫合并两个不同长度的数据框

合并两个不同长度的数据框

合并两个不同长度的数据框

如何将两个不同长度的列表合并为Pandas数据框?

如何在python中合并两个不同长度的数据框

合并两个不同长度的python pandas数据帧,但将所有行保留在输出数据帧中

如何连接两个不同长度的单列数据帧,以便更新日期时间索引?

如何为matplotlib图组合两个或多个具有不同长度时间序列的pandas数据帧?

熊猫结合了两个不同长度的时间序列数据帧

R:使用for循环在两个不同长度的数据帧上执行多个if条件

合并不同长度的两个数据集

合并两个不同长度的python列表

合并两个相同长度但键不同的数组?

在python中合并两个不同长度的列表

合并不同长度的数据帧

合并两个不同长度的数据框时重复某些列(粘贴?)

如何合并和聚合3+个不同长度和名称的数据帧

如何合并来自两个相同长度的不同数组的对象?

如何根据值合并两个不同长度的对象

如何使用具有匹配变量的两个不同长度的不同数据帧减去一个值

在一帧中以block_wise索引连接两个具有不同长度的数据帧

通过最接近的匹配合并两个不同长度的列上的两个数据框

如何合并具有不同长度和索引的两个 DataFrames 是另一个的子集但它们的数据类型不同?