我有两个数据帧df1和df2。这是一个小样本
Days
4
6
9
1
4
我的df2是
Day1 Day2 Alphabets
2 5 abc
4 7 bcd
8 10 ghi
10 12 abc
如果df1中的日期介于day1和day2之间,我想更改df1,使其具有新的df2列的Alphabets。像这样:
if df1['Days'] in between df2['Day1'] and df2['Day2']:
df1['Alphabets']=df2['Alphabets']
结果是:
Days Alphabets
4 abc
6 bcd
9 ghi
etc.
我尝试进行循环,甚至要花费很多时间。还有其他优雅的方法吗?
预先感谢
答案 0 :(得分:1)
我将使用numpy
广播
s1=df2.Day1.values
s2=df2.Day2.values
s=df1.Days.values[:,None]
df1['V']=((s-s1>0)&(s-s2<0)).dot(df2.Alphabets)
df1
Out[277]:
Days V
0 4 abc
1 6 bcd
2 9 ghi
3 1
4 4 abc