我正在编写一个函数,该函数在pandas数据框中返回在特定年份创建的许多项,其中搜索是在格式为2015-05-11的列'çreation‘中进行的:
def do_get_citations_per_year(data, year):
result = tuple()
citations = list()
for index, row in my_ocan.iterrows():
my_ocan['creation'] = pd.DatetimeIndex(my_ocan['creation']).year
#print(my_ocan['creation'])
if row['creation'] == year:
citations.append(row['creation'])
len_citations = len(citations)
result=(len_citations)
return result当我运行我的函数print(my_ocan.get_citations_per_year(2015))时,我得到了0,但有一些项是在2015年创建的。
有什么问题吗?
谢谢你,祝你有美好的一天!
发布于 2019-11-25 04:45:41
尝试:
def do_get_citations_per_year(data, year):
result = tuple()
citations = list()
my_ocan['creation'] = pd.DatetimeIndex(my_ocan['creation']).year
for index, row in my_ocan.iterrows():
#print(my_ocan['creation'])
if row['creation'] == year:
citations.append(row['creation'])
len_citations = len(citations)
result=(len_citations)
return result或者,我认为这将给你,你正在寻找的东西:
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"])
result=(len_citations)
return result(您不必遍历所有pandas行,只需使用.loc[<condition>, <colimns_to_return>]即可)
https://stackoverflow.com/questions/59022199
复制相似问题