我有两个数据帧df1和df2在列上有相同的值,我想有一个函数来填充df1汇率列从df2中的日期
如果可能,还可以从df2中插入nans
df1
"date" "value" "Exchange_Rate"
2019-Jan 35691
2019-Jan 17076
2019-Dec 988
2019-Dec 1996
df2
"exchange_rate" "date" "real_or_forecast"
19.126386 2019-Jan real
19.197585 2019-Feb real
19.269133 2019-Mar real
19.089059 2019-Apr real
19.042815 2019-May real
19.142962 2019-Jun real
NaN 2019-Jul forecast
NaN 2019-Aug forecast
19.237154 2019-Sep forecast
NaN 2019-Oct forecast
19.559262 2019-Nov forecast
NaN 2019-Dec forecast
19.559262 2020-Jan forecast
def get_fill_currency(df):
for value in df['date']
if df1['date'] == date :
return value['exchange_rate']
df1
"date" "value" "Exchange_Rate"
2019-Jan 35691 19.126386
2019-Jan 17076 19.126386
2019-Dec 988 19.559262
2019-Dec 1996 19.559262
发布于 2019-07-06 02:01:27
IIUC,您可以结合使用map
、set_index
和interpolate
df1[2] = df1[0].map(df2.set_index('date')['exchange_rate'].interpolate())
输出:
0 1 2
0 2019-Jan 35691 19.126386
1 2019-Jan 17076 19.126386
2 2019-Dec 988 19.559262
3 2019-Dec 1996 19.559262
https://stackoverflow.com/questions/56910664
复制