这是该question的延续(已经提供了不错的结果,但还不是我完全需要的)。
我有以下两个数据框:
DF1 =
Inflow
0 9810998109
1 5591255912
2 7394273942
3 7866678666
4 1820118202
5 9812198109
6 9810998101
7 4304043040
8 9810998121
Inflow object
dtype: object
DF2 =
Inflow mi_to_zcta5
0 3371433756 11.469054
1 1790118201 24.882142
Inflow object
mi_to_zcta5 object
dtype: object
我想要的结果如下(在这种情况下,假设DF1 ['Inflow']的所有流入值都与DF2 ['Inflow']的行1最接近:
Inflow mi_to_zcta5
0 9810998109 24.88214228
1 5591255912 24.88214228
2 7394273942 24.88214228
3 7866678666 24.88214228
4 1820118202 24.88214228
5 9812198109 24.88214228
6 9810998101 24.88214228
7 4304043040 24.88214228
8 9810998121 24.88214228
Inflow object
dtype: object
我希望每个DF1 ['Inflow']元素都可以在DF2 ['Inflow']上找到最接近的相似键,一旦满足该条件,便可以从DF2 ['mi_to_zcta5']中获取值。我在Pandas上尝试了不同的设置,但是它们都返回了相同的错误:
'NoneType'对象不可调用
我尝试了此操作(请注意,流入列被bot设置为对象,因为这是将列设置为字符串时列的dtype,并且它必须像这样,因为我可能还有其他键,这些键混合了数字和字母):
test = pd.merge_asof(df1, df2, on = 'Inflow')
test = pd.merge_asof(df1, df2, on = 'Inflow', allow_exact_matches=False)
test = pd.merge_asof(df1, df2, on = 'Inflow', direction= 'nearest', allow_exact_matches=False)
不幸的是,没有成功,这是可以实现的吗?我很想知道。
在此先感谢您的帮助或指导。