多列的 Pandas“apply”函数故障排除
尝试使用“apply”将函数应用于 Pandas 数据框中的多列时' 函数时,如果列名未包含在字符串中或函数定义中出现语法错误,用户可能会遇到错误消息。
要解决未定义名称的问题,请确保指定列名在单引号或双引号内。例如,不要使用 'row[a]',而使用 'row['a']' 或 'row["a"]'。
此外,如果 'apply' 中使用的函数涉及复杂的操作或多个循环,检查任何语法错误或丢失的语句至关重要。这些错误可能会影响函数的执行并导致不正确的结果或错误消息。
考虑以下示例:
df = DataFrame({'a': np.random.randn(6),
'b': ['foo', 'bar'] * 3,
'c': np.random.randn(6)})
def my_test(row):
cum_diff = 0
for ix in df.index():
cum_diff = cum_diff (row['a'] - df['a'][ix])
return cum_diff
在此示例中,错误消息“IndexError:索引超出范围”是由于在循环期间尝试访问不存在的索引而产生的。要纠正此问题,请确保索引位于数据帧的范围内或使用不同的迭代方法,例如:
def my_test(row):
cum_diff = 0
for index, value in df.iterrows():
cum_diff = (row['a'] - value['a'])
return cum_diff
通过仔细检查函数并将列名称括在字符串中,您可以有效地解决问题并利用具有多个列的“apply”函数。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3