【问题标题】:Deprecation warning for np.ptpnp.ptp 的弃用警告
【发布时间】:2019-08-26 18:20:25
【问题描述】:

我正在使用 Python,并且在使用以下代码时

df['timestamp'] = df.groupby(["id"]).timestamp.transform(np.ptp)

我收到警告 FutureWarning: Method .ptp is deprecated and will be removed in a future version. Use numpy.ptp instead.df 是 Pandas DataFrame,timestamp 和 id 是 columns。我认为np.ptp 引起了这个警告。

我需要改变什么?

【问题讨论】:

  • 这是 pandas 需要自我调整的东西。您可以暂时忽略警告并等待修复或使用类似df.groupby('A')['B'].transform(lambda x: np.ptp(x.to_numpy()))

标签: python pandas future-warning


【解决方案1】:

这意味着 Method .ptp 已被弃用,取而代之的是(根据我的阅读)函数 np.ptp( ) 所以您可以将警告设置为 false 以便不阅读它,或者将方法替换为 numpy 似乎建议的函数。

如果您想抑制警告,可以尝试: warnings.filterwarnings('ignore') 或 warnings.simplefilter('ignore', FutureWarning) 如果您只忽略 FutureWarning。

【讨论】:

  • 好的,但是在转换中使用 np.ptp() 有效吗?这意味着 df['timestamp'] = df.groupby(["id"]).timestamp.transform(np.ptp())
  • 应该被接受 是的,警告是告诉你将来它不会工作,你必须使用函数而不是方法,很可能使用 lambda 或 apply 函数,一个 np.ptp - 在其中转换。
  • 太好了,谢谢。顺便问一下,如何将警告设置为 false?
  • 已在答案中编辑 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-04
  • 2021-04-06
  • 1970-01-01
  • 2013-09-11
  • 2021-07-12
相关资源
最近更新 更多