熊猫产生“'NoneType'对象不可调用”的merge_asof()错误

时间:2018-10-10 17:02:18

标签: python python-3.x pandas dataframe merge

这是该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)

不幸的是,没有成功,这是可以实现的吗?我很想知道。

在此先感谢您的帮助或指导。

0 个答案:

没有答案