Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将时间序列中的两个数据帧相交_Python_Pandas_Dataframe_Numpy_Time Series - Fatal编程技术网

Python 将时间序列中的两个数据帧相交

Python 将时间序列中的两个数据帧相交,python,pandas,dataframe,numpy,time-series,Python,Pandas,Dataframe,Numpy,Time Series,我有两个数据帧,看起来与下面描述的数据帧相似 df1 id date x w 0 71896517 2020-07-25 1 5 1 71896517 2020-09-14 2 3 2 72837666 2020-09-21 1 9 3 72848188 2020-11-03 1 1 df2

我有两个数据帧,看起来与下面描述的数据帧相似

df1
            id          date        x  w
    0       71896517    2020-07-25  1  5
    1       71896517    2020-09-14  2  3
    2       72837666    2020-09-21  1  9
    3       72848188    2020-11-03  1  1


df2
            id          date         x  y  z
    0       71896517    2020-07-25   1  1  6
    1       71896589    2020-09-14   2  2  8
    2       72837949    2020-09-21   1  1  3
    3       72848188    2020-11-03   1  1  2
我只想通过与上面两个数据帧相交来实现一个数据帧,并实现类似于:

        id          date        x  w   y   z
0       71896517    2020-07-25  1  5   1   6
1       71896517    2020-09-14  2  3   NaN NaN
2       71896589    2020-09-14  2  NaN 2   8
3       72837666    2020-09-21  1  9   NaN NaN
4       72837949    2020-09-21  1  NaN 1   3
5       72848188    2020-11-03  1  1   1   2
我非常希望每个日期的每个id的信息都在同一行。我离开了NaN,因为我认为这就是它的呈现方式,但是我会用零填充它们。
我如何才能做到这一点?

让我们尝试外部合并:

df3 = df1.merge(df2, how='outer').sort_values('date').reset_index(drop=True)
print(df3)
df3

         id        date  x    w    y    z
0  71896517  2020-07-25  1  5.0  1.0  6.0
1  71896517  2020-09-14  2  3.0  NaN  NaN
2  71896589  2020-09-14  2  NaN  2.0  8.0
3  72837666  2020-09-21  1  9.0  NaN  NaN
4  72837949  2020-09-21  1  NaN  1.0  3.0
5  72848188  2020-11-03  1  1.0  1.0  2.0