【发布时间】:2019-01-03 03:30:57
【问题描述】:
我正在尝试更改切片中除第一个之外的所有值,但它不起作用...我做错了什么?
print(test)
test.loc[(test.col_1==-5)&(test.index>'2018-07-17 13:00:00')&(test.index<'2018-07-17 14:00:00'),['col_1']][1:]=-1
print(test)
提供以下输出
17/07/2018 13:51:00 -5
17/07/2018 13:52:00 -1
17/07/2018 13:53:00 -5
17/07/2018 13:54:00 -5
17/07/2018 13:55:00 -5
17/07/2018 13:56:00 -5
17/07/2018 13:57:00 -5
17/07/2018 13:58:00 -5
17/07/2018 13:59:00 -5
17/07/2018 13:51:00 -5
17/07/2018 13:52:00 -1
17/07/2018 13:53:00 -5
17/07/2018 13:54:00 -5
17/07/2018 13:55:00 -5
17/07/2018 13:56:00 -5
17/07/2018 13:57:00 -5
17/07/2018 13:58:00 -5
17/07/2018 13:59:00 -5
而我期望第二个输出是
17/07/2018 13:51:00 -5
17/07/2018 13:52:00 -1
17/07/2018 13:53:00 -1
17/07/2018 13:54:00 -1
17/07/2018 13:55:00 -1
17/07/2018 13:56:00 -1
17/07/2018 13:57:00 -1
17/07/2018 13:58:00 -1
17/07/2018 13:59:00 -1
【问题讨论】:
-
可以加minimal, complete, and verifiable example吗?因为看起来两个 DataFrame 都是一样的。
-
@jezrael:我使用了一张图片来避免编写一些 html ......但还可以......为了争论,虽然这不是一些代码而是输出结果。
-
@jezrael:如果您首先正确阅读了该示例,则该示例很明确...显然您没有,并且对问题投了反对票,因为您没有花费超过 1 分钟的时间来理解它好可怜……
-
谢谢,有时实际情况会有所不同 ;) 所以你需要过滤
DataFrame的第一行还是需要过滤掉布尔掩码的第一个 True 值?
标签: python python-3.x pandas numpy indexing