gpt4 book ai didi

Python 测试数据框列的真/假条件并在新列中返回输出

转载 作者:太空狗 更新时间:2023-10-30 02:27:38 25 4
gpt4 key购买 nike

我是 Python 编码的新手,所以我正在努力掌握一些基础知识 - 欢迎任何意见。

我有一个每周日期列表,我正在尝试在这些天运行“if”语句,即如果天数小于 7,则创建一个包含因子 x 的列,否则创建一个因子 y -如下表所示:

    week        day check       factor
0 2017-01-08 8 False x
1 2017-01-15 15 False x
2 2017-01-22 22 False x
3 2017-01-29 29 False x
4 2017-02-05 5 True y

我尝试了下面的代码:

if df['day'] <7 :
factor=weeks['day']/7
else:
....

出现错误:

ValueError: The truth value of a Series is ambiguous

我已经调查过了,并且了解到上面的代码试图测试整个列,因此不可能有明确的真/假响应。我已经看到一些关于 all/any 的评论,但这些也没有给我我正在寻找的回应。有没有一种方法可以测试列中的每个项目并根据值返回不同的输出?

最佳答案

如果需要,使用 to_datetime 转换“周”列 datetime dtype那么您可以使用 dt.day 比较日期属性并将其用作 np.where 的条件:

In [47]:
df['week'] = pd.to_datetime(df['week'])
df['factor'] = np.where(df['week'].dt.day < 7, 'y', 'x')
df

Out[47]:
week day check factor
0 2017-01-08 8 False x
1 2017-01-15 15 False x
2 2017-01-22 22 False x
3 2017-01-29 29 False x
4 2017-02-05 5 True y

关于Python 测试数据框列的真/假条件并在新列中返回输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40221497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com