![](/img/trans.png)
[英]Pandas: how to make a join based on a condition between two columns of 2 seperate dataframes
[英]How to join data from two seperate columns based upon condition to another dataframe?
如果日期大于 2015 年 1 月 1 日,我想从 df2 添加数据,如果日期小于 2015 年 1 月 1 日,我想从 df1 添加数据。 不确定如何执行此操作,因为列的长度不同。
我有一个主 DF df1,以及两个包含名为 df2 和 df3 的数据的数据帧。
df2 看起来像这样:
day Value
01/01/2015 5
02/01/2015 6
...
一直到今天,
我也有 DF3,它是相同的数据,但从 2000 年到今天,就像
day Value
01/01/2000 10
02/01/2000 15
...
我想 append 到 DF1 的值列,即日期小于 2015 年时 DF3 的值,以及日期超过 2015 年 1 月 1 日(包括)时的 DF2 值。 不确定如何使用条件执行此操作。 我认为 np.where 有一种方法,但不确定如何。
添加更多上下文。
我想编纂这个声明:
df1[values] = DF2[Values] 当日期大于 1/1/2015 和 df1[values] = DF3[Values] 当日期小于 1/1/2015
如果要加入2 dataframe,可以使用df1.mrege(df2,on="col_name")。 如果您想要一个 dataframe 的条件并与另一个加入,
像这样做,
import pandas as pd
#generating 2 dataframes
date1 = pd.date_range(start='1/01/2015', end='2/02/2015')
val1 = [2,3,5]*11. #length equal to date
dict1 = {"Date":date2,"Value":val1}
df1 = pd.DataFrame(dict1)
df1. #view df1
date2 = pd.date_range(start='1/01/2000', end='2/02/2020')
val2 = [21,15]*3669. #length equal to date
dict2 = {"Date":date2,"Value":val2}
df2 = pd.DataFrame(dict2)
df2. #view df1
df3 =df1[df1["Date"]<"2015-02-01"] #whatever condition you want apply
and store on different dataframe
df2.merge(df3,on="Date")
df2 #joined dataframe
这就是您如何在有条件的日期加入 2 个 dataframe,只需应用条件并存储另一个 dataframe 并将其与第一个 Z6A8064B5DF479455500="53C47C5507DZ" 加入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.