繁体   English   中英

在 lambda 内使用运算符分配变量

[英]Assign variables with operator inside lambda

我正在使用 pandas。我有一个现有的列,其中从第二天开始累积天数,ex -> [2, 3, 4, 5, 6, 7, 8, 9, 10, ..] 我正在尝试用一周的计数创建一个新的 Dataframe。 我想为此使用 lambda,但我不知道该怎么做。 代码看起来像这样

day_counter = 1
week = 1
df_eqpt['WeekNumber'] = df_eqpt['day'].apply(lambda x: week + 1 if day_counter == day_counter + 7 else day_counter += 1)

非常感谢关于如何 go 的任何建议:)

  1. 你说你想用 lambda 来实现,但它不起作用。 保持简单和不言自明:定义一个命名的def而不是编写一个匿名的 lambda。

  2. function 中的局部变量 Scope 对您没有任何帮助。 您可能会选择使用global关键字,但最好创建一个新的class Counter:并在self.day_countself.week

  3. 您可能会发现将start定义为方便的类型(例如datetime )然后递增timedelta会更简单。

  4. 考虑添加一个具有顺序 integer 的额外列,或者 df 索引可能已经提供了。 然后,不需要.apply(... ) ,您可以对表达式进行更简单的赋值。

  5. 也许.isocalendar() function 会很方便。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM