代码之家  ›  专栏  ›  技术社区  ›  Aquiles Páez

生成“NoneType”对象的\u asof()是不可调用的错误

  •  0
  • Aquiles Páez  · 技术社区  · 6 年前

    这是本书的延续 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']中的所有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']的值。我在熊猫身上尝试了不同的设置,但都返回了相同的错误:

    “NoneType”对象不可调用

    我试过这样做(请注意,流入列不能设置为object,因为这是列设置为字符串时获得的数据类型,必须是这样的,因为我可能有数字和字母混合的其他键):

    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 回复  |  直到 6 年前