对于数据框中列的循环
For loop on column in dataframe
我正在尝试计算数据框中每行的方程并将该值分配给新列:
def exercise_02():
df_region = df.groupby(by = "region").sum()
for i in range(len(df_region)):
i == 0
df_region["w_avg"] = df1["2018_x"][i] * df1["2018_y"][i] / df1["2018_y"][i]
i = i+1
result = df_region
return result
当我只写这个时,它显示了这个输出:
enter image description here
如您所见,已创建列 w_avg,但它包含相同的值。
我试图通过在循环内的列名后添加 [i] 来解决:
def exercise_02():
df_region = df.groupby(by = "region").sum()
for i in range(len(df_region)):
i == 0
**df_region["w_avg"][i]** = df1["2018_x"][i] * df1["2018_y"][i] / df1["2018_y"][i]
i = i+1
result = df_region
return result
但是,我收到此错误消息:
if tolerance is not None:
KeyError: 'w_avg'
你知道我做错了什么吗?
谢谢!
DataFrames 的优点在于您不需要 循环。它们是矢量化的。如果您要将您的(作业?)功能更改为
def exercise_02():
df_region = df.groupby(by = "region").sum()
df_region["w_avg"] = df_region["2018_x"] * df_region["2018_y"] / df_region["2018_y"]
return df_region
但是,我注意到您混淆了多个数据帧。如果它们的大小不同,您 将 运行 陷入有关 length/index 的问题。这真的取决于你在 df_region
、df
和 df_1
之间的关系。
我提到后者的原因是您或多或少不小心(?)使用了函数范围之外的变量。您的函数没有参数,但在其范围内使用 df
和 df1
。因此,您的问题中肯定缺少某些内容,您需要了解自己,或传达给社区以完整 'anwer' 您的问题。
我正在尝试计算数据框中每行的方程并将该值分配给新列:
def exercise_02():
df_region = df.groupby(by = "region").sum()
for i in range(len(df_region)):
i == 0
df_region["w_avg"] = df1["2018_x"][i] * df1["2018_y"][i] / df1["2018_y"][i]
i = i+1
result = df_region
return result
当我只写这个时,它显示了这个输出: enter image description here
如您所见,已创建列 w_avg,但它包含相同的值。
我试图通过在循环内的列名后添加 [i] 来解决:
def exercise_02():
df_region = df.groupby(by = "region").sum()
for i in range(len(df_region)):
i == 0
**df_region["w_avg"][i]** = df1["2018_x"][i] * df1["2018_y"][i] / df1["2018_y"][i]
i = i+1
result = df_region
return result
但是,我收到此错误消息:
if tolerance is not None:
KeyError: 'w_avg'
你知道我做错了什么吗? 谢谢!
DataFrames 的优点在于您不需要 循环。它们是矢量化的。如果您要将您的(作业?)功能更改为
def exercise_02():
df_region = df.groupby(by = "region").sum()
df_region["w_avg"] = df_region["2018_x"] * df_region["2018_y"] / df_region["2018_y"]
return df_region
但是,我注意到您混淆了多个数据帧。如果它们的大小不同,您 将 运行 陷入有关 length/index 的问题。这真的取决于你在 df_region
、df
和 df_1
之间的关系。
我提到后者的原因是您或多或少不小心(?)使用了函数范围之外的变量。您的函数没有参数,但在其范围内使用 df
和 df1
。因此,您的问题中肯定缺少某些内容,您需要了解自己,或传达给社区以完整 'anwer' 您的问题。