Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.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_Concatenation_Overlap - Fatal编程技术网

Python 连接两个数据帧,并使用一些重叠的日期索引,结果数据帧取;“左”;默认情况下,除了;“左”;是楠吗

Python 连接两个数据帧,并使用一些重叠的日期索引,结果数据帧取;“左”;默认情况下,除了;“左”;是楠吗,python,pandas,dataframe,concatenation,overlap,Python,Pandas,Dataframe,Concatenation,Overlap,给出下面的DF1和DF2,如何得到DF结果 DF1: DF2: DFresult: Date | Value Date | Value Date | Value ------------ ------------ ------------ 1-01-2019 | 1

给出下面的DF1和DF2,如何得到DF结果

DF1:                        DF2:                        DFresult:       
Date | Value                Date | Value                Date | Value
------------                ------------                ------------
1-01-2019 | 1                                           1-01-2019 | 1       (no overlap, take the one that exists)
1-02-2019 | 1                                           1-02-2019 | 1       (no overlap, take the one that exists)
1-03-2019 | np.NaN          1-03-2019 | 2               1-03-2019 | 2       (left is NaN, take right)
1-04-2019 | 1               1-04-2019 | np.NaN          1-04-2019 | 1       (left is not NaN, take left)
1-05-2019 | np.NaN          1-05-2019 | np.NaN          1-05-2019 | np.NaN  (both NaN, keep it)
1-06-2019 | 1               1-06-2019 | 2               1-06-2019 | 1       (left is not NaN, take left)
                            1-07-2019 | 2               1-07-2019 | 2       (no overlap, take the one that exists)
                            1-08-2019 | 2               1-08-2019 | 2       (no overlap, take the one that exists)
                            1-09-2019 | 2               1-09-2019 | 2       (no overlap, take the one that exists)
                            1-10-2019 | 2               1-10-2019 | 2       (no overlap, take the one that exists)
                            1-11-2019 | 2               1-11-2019 | 2       (no overlap, take the one that exists)
如果我想使用一个函数来确定重叠决策呢?例如,如果left高于right,或者left为NaN,则以left为例:

DF1:                        DF2:                        DFresult:       
Date | Value                Date | Value                Date | Value
------------                ------------                ------------
1-01-2019 | 1                                           1-01-2019 | 1       (no overlap, take the one that exists)
1-02-2019 | 1                                           1-02-2019 | 1       (no overlap, take the one that exists)
1-03-2019 | np.NaN          1-03-2019 | 2               1-03-2019 | 2       (left is NaN, take right)
1-04-2019 | 1               1-04-2019 | np.NaN          1-04-2019 | 1       (right is NaN, take left)
1-05-2019 | np.NaN          1-05-2019 | np.NaN          1-05-2019 | np.NaN  (both NaN, keep it)
1-06-2019 | 1               1-06-2019 | 2               1-06-2019 | 2       (left is not higher, take right)
1-06-2019 | 3               1-07-2019 | 2               1-07-2019 | 3       (left is higher, take left)
1-06-2019 | 1               1-08-2019 | 2               1-08-2019 | 2       (left is not higher, take right)
                            1-09-2019 | 2               1-09-2019 | 2       (no overlap, take the one that exists)
                            1-10-2019 | 2               1-10-2019 | 2       (no overlap, take the one that exists)
                            1-11-2019 | 2               1-11-2019 | 2       (no overlap, take the one that exists)
试一试

out = pd.concat([DF1,DF2]).groupby('Date',as_index=False).max()
# for your original one 

#out = pd.concat([DF1,DF2]).groupby('Date',as_index=False).first()

很好,谢谢!如果条件不是“max()”或“first”,而是类似于如果DF1-DF2>4,该怎么办?