Python 使用表1和表2数据计算表3

Python 使用表1和表2数据计算表3,python,pandas,dataframe,Python,Pandas,Dataframe,我正在尝试解决ID问题,我能够解决表3中日期、VarX和VARIVE的值,但在下面要求的日期中,ID为1和2是一个问题 这个问题的目的是获得表3,其中包含所需的数据和ID。因此,表3中的输出应该包含ID、日期、VarX和VarY +---------------------------+ | TABLE 1: | +---------------------------+ | ID Date VarX VarY | | 1 30-03-201

我正在尝试解决ID问题,我能够解决表3中日期、VarX和VARIVE的值,但在下面要求的日期中,ID为1和2是一个问题

这个问题的目的是获得表3,其中包含所需的数据和ID。因此,表3中的输出应该包含ID、日期、VarX和VarY

+---------------------------+
|         TABLE 1:          |
+---------------------------+
| ID  Date        VarX VarY |
| 1   30-03-2019  35    65  |
| 2   30-03-2019  45    12  |
| 3   30-03-2019  15    45  | 
+---------------------------+

+---------------------------+
|         TABLE 2:          |
+---------------------------+
| ID  Date        VarX VarY |
| 1   01-04-2019  25    45  |
| 1   05-04-2019        22  |
| 1   08-04-2019  29        |
| 2   03-04-2019  59    18  |
| 2   05-04-2019  48        |
| 2   09-04-2019  31        |
| 2   14-04-2019        26  |
+---------------------------+

+----------------------------+
|         TABLE 3:           |
+----------------------------+
|  ID  Date        VarX VarY |
|   1  08-04-2019   29  22   |
|   2  14-04-2019   31  26 
|   3  30-03-2019   15  45
+----------------------------+

如有必要,首先通过
df1['ID']
列进行过滤,并与以下内容一起使用:

如果缺少空值
NaN
s use,它将返回最后一个未缺少的值:

df3 = df2.groupby('ID', as_index=False).last()
print (df3)
   ID        Date  VarX  VarY
0   1  08-04-2019  29.0  22.0
1   2  14-04-2019  31.0  26.0
其他:

编辑:在两个
DataFrame
s:

df11 = df1.set_index('ID')
df22 = df2.groupby('ID').last()

df11.update(df22)

df3 = df11.reset_index()
print (df3)

   ID        Date  VarX  VarY
0   1  08-04-2019  29.0  45.0
1   2  14-04-2019  26.0  18.0
2   3  30-03-2019  15.0  45.0

如有必要,首先通过
df1['ID']
列进行过滤,并与以下内容一起使用:

如果缺少空值
NaN
s use,它将返回最后一个未缺少的值:

df3 = df2.groupby('ID', as_index=False).last()
print (df3)
   ID        Date  VarX  VarY
0   1  08-04-2019  29.0  22.0
1   2  14-04-2019  31.0  26.0
其他:

编辑:在两个
DataFrame
s:

df11 = df1.set_index('ID')
df22 = df2.groupby('ID').last()

df11.update(df22)

df3 = df11.reset_index()
print (df3)

   ID        Date  VarX  VarY
0   1  08-04-2019  29.0  45.0
1   2  14-04-2019  26.0  18.0
2   3  30-03-2019  15.0  45.0

感谢它的工作,如果TB1有一个ID DATE VarX VarY 3 30-03-2019 15 22的新列,我们将如何从表1和表2中获得表3中的最新数据?@dnxtgn-您能解释更多吗?上面的评论中有4个专栏,我已经更新了这个问题。我需要提取最新的ID,即1、2和3。ID 3在表1中,表2包含最新的值,因此表3将包含两个表中的最新ID值。感谢它的工作,如果TB1有一个ID DATE VarX VarY 3 30-03-2019 15 22的新列,我们将如何从表1和表2中获得表3中的最新数据?@dnxtgn-您能解释更多吗?上面的评论中有4个专栏,我已经更新了这个问题。我需要提取最新的ID,即1、2和3。ID 3在表1中,表2包含最新值,因此表3将包含两个表中的最新ID值。