【问题标题】:python function missing 2 required positional arguments: ln1, ln2python函数缺少2个必需的位置参数:ln1,ln2
【发布时间】:2020-03-17 07:12:07
【问题描述】:
def di(l1,l2, ln1, ln2):  
   dlt = (l2-l1)
   dln = (ln2-ln1)    
   d = dlt * dln
return d

abc = newdf[['l1','l2','ln1','ln2']]
abc.columns

功能正常运行。但是在处理数据框时,它显示错误为

di() 缺少 2 个必需的位置参数:ln1, ln2

newdf = newdf.withColumn('newcolnm',reduce(di, ( newdf[col] for col in abc.columns ) ))

【问题讨论】:

  • reduce 需要 2 个参数
  • 你的radial_distance()在哪里?
  • @pygirl which 2 个参数减少了
  • 很难判断您的代码在做什么,因为它不是一个完整的、可重现的示例。但是,reduce 的目的是应用 (T, T) -> T 形式的函数(恰好 2 个相同类型的参数),而 d1 根本不匹配。你打算减少di 是什么意思?你期望ln1ln2 是什么?

标签: python dataframe pyspark


【解决方案1】:

您的函数定义是正确的,但是在调用该函数时您没有传递所需的 4 个参数。你的调用应该像funct(a, b, c, d)

如果你不希望参数强制定义你的函数为

di (p1=None, p2=None, p3=None, p4=None)

这样你可以省略不需要的参数

【讨论】:

  • newdf = newdf.withColumn('newcolnm',reduce(di, ( newdf[col] for col in abc.columns ) )) .....调用函数是否正确?跨度>
猜你喜欢
  • 2019-02-08
  • 2021-07-22
  • 1970-01-01
  • 2018-06-28
  • 2013-09-27
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 2020-06-13
相关资源
最近更新 更多