英文:
Reset values of a column based on conditions from another column Pandas
问题
我有一个包含'时间'和'Col1'列的DataFrame。我想编写一个简单的函数,用于在'Time'列中的时间间隔内更改'Col1'的值。
我不知道为什么以下代码会产生以下错误:
ValueError: Series的真值是模棱两可的。请使用a.empty,a.bool(),a.item(),a.any()或a.all()。
val = 5
time1 = 200
time2 = 300
def reset_value(df, val, time1, time2):
df.loc[(df['Time'] >= time1) & (df['Time'] < time2), 'Col1'] = val
return df
如果您有其他需要,请随时告诉我。
英文:
I have df with columns 'Time' and 'Col1'. I would like to write a simple function that changes the values of 'Col1' between the time intervals from 'Time' column.
I don't know why the following code produces the following error:
> ValueError: The truth value of a Series is ambiguous. Use a.empty,
> a.bool(), a.item(), a.any() or a.all().
val = 5
time1 = 200
time2 = 300
def reset_value(df, val, time1, time2):
df.loc[df['Time'] >= time1 and df['Time']<time2, 'Col1'] = val
return df
答案1
得分: 0
使用 &
用于位运算 AND
并添加括号:
df.loc[(df['Time'] >= time1) & (df['Time']<time2), 'Col1'] = val
df.loc[df['Time'].ge(time1) & df['Time'].lt(time2), 'Col1'] = val
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论