python - Pandas 应用函数输入的变化
问题描述
假设我有这个简单的函数,它可以找到变量 x 和比较值之间的最大数(可以是任何值)。
def find_max(x, comparison_value = 2):
if x > comparison_value:
y = x
else:
y = comparison_value
return y
我想将此功能应用于数据框:
abcd = pd.DataFrame([[1,2],[2,5],[3,4]], columns= ['col1','col2'])
col1 col2
0 1 2
1 2 5
2 3 4
abcd.col1.apply(find_max)
我的问题是:当我使用 pandas.apply 时,有没有办法让我也改变函数的输入?例如,现在我想将比较值更改为 3 而不是 2。谢谢。
解决方案
我认为你需要传递**kwargs
参数Series.apply
:
定义一个接受关键字参数并将这些参数传递给应用的自定义函数。
def add_custom_values(x, **kwargs):
for month in kwargs:
x += kwargs[month]
return x
s.apply(add_custom_values, june=30, july=20, august=25)
London 95
New York 96
Helsinki 87
dtype: int64
因此,在您的解决方案中使用:
print (abcd.col1.apply(find_max, comparison_value=3))
推荐阅读
- amazon-cognito - AWS Cognito:如何在托管注册 UI 上显示自定义属性?
- github-desktop - Github desktop custom color scheme
- mongoose - 如何解决 VS 代码中的原型污染问题
- r - group_by 函数的 YAML 参数列表
- visual-studio - 远程调试 dotnet 测试:未加载 vstest.console.pdb
- perl - 如何总结perl中线程数组返回的所有值?
- splunk - 使用 HEC 令牌 splunk 未收到数据
- c# - 我如何访问未连接到我的班级的列表
- ios - 如何快速显示每个单元格附近的Collectionview单元格
- cors - dotnet core 3.1 中的 Cors 问题,带有选项请求