gpt4 book ai didi

python - 理解python for循环语句中的变量声明

转载 作者:行者123 更新时间:2023-12-01 00:25:29 28 4
gpt4 key购买 nike

我在互联网上浏览了一些代码,为我的日期列创建虚拟对象,该列只有三个值:1800、1900、2000

“yr”在定义阶段位于函数内部,并且之前尚未声明。 “yr”似乎出现在“for 循环”中,然后使用“apply”来获取虚拟值。据我所知,for 循环中的“yr”列表实际上在“movies”数据框中生成了三列 1800、1900、2000。

但后来确实如此;

1.) python 允许在 for 循环中声明一个列表“yr”而不需要之前的初始化吗?

2.) 以及如何将“movies”df 的“date”列传递给函数而不传递“yr”,因为我无法理解函数内的“if”语句正在比较的每个值“日期”列与?

我无法理解“yr”从 for 循环到函数内部的代码流程,其中“date”列值“val”在“if”语句中进行比较。

请帮忙!!

# Return century of movie as a dummy column
def add_movie_year(val):
if val[:2] == yr:
return 1
else:
return 0

# Apply function
for yr in ['18', '19', '20']:
movies[str(yr) + "00's"] = movies['date'].apply(add_movie_year)

最佳答案

您遇到此问题的原因是您应该将 yr 放入 add_movie_year 函数中,并告诉 apply 函数使用 yr 作为函数输入。

movies = pd.DataFrame({'date':['1800', '1900', '2000']})
# Return century of movie as a dummy column
def add_movie_year(val, yr):
if val[:2] == yr:
return 1
else:
return 0

# Apply function
for yr in ['18', '19', '20']:
movies[str(yr) + "00's"] = movies['date'].apply(add_movie_year, args = (yr,))

关于python - 理解python for循环语句中的变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58612681/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com