首页 > 解决方案 > 通过重用另一个函数来创建一个以元组为值的字典

问题描述

我正在编写一个函数,它返回一个字典,其中文档的年份作为键,作为值,它指定了一个由do_get_citations_per_year函数返回的元组。

def do_get_citations_per_year(data, year):
    result = tuple()
    my_ocan['creation'] = pd.DatetimeIndex(my_ocan['creation']).year

    len_citations = len(my_ocan.loc[my_ocan["creation"] == year, "creation"])
    timespan = my_ocan.loc[my_ocan["creation"] == year, "timespan"].fillna(0).mean()

    result = (len_citations, timespan)
    print(result)


    return result
#test print(my_ocan.get_citations_per_year(2018)) Output: (32, 240.03125)

当我在另一个函数中调用相同的函数时:do_get_citations_all_years函数它不会返回相同的元组(32, 240.03125),而是返回(0, nan). 为什么会在那里?

def do_get_citations_all_years(data):
    mydict = {}
    s = set(my_ocan.creation)
    print(s)
    for year in s:
        mydict[year] = do_get_citations_per_year(data, year)

    return mydict
#Output: {2016: (0, nan), 2017: (0, nan), 2018: (0, nan), 2013: (0, nan), 2015: (0, nan)}

非常感谢您提前=)

标签: pythonpandasdictionary

解决方案


推荐阅读