当熊猫数据框窗口中的项目相同时如何返回第一个项目?
Posted
技术标签:
【中文标题】当熊猫数据框窗口中的项目相同时如何返回第一个项目?【英文标题】:How to return first item when the items in the pandas dataframe window are the same? 【发布时间】:2021-12-27 21:42:10 【问题描述】:我是 python 初学者。 我有以下熊猫数据框,只有两列; “时间”和“输入”。
我想遍历“输入”列。假设我们有一个窗口大小 w= 3。(三个连续值)这样对于每个选定的窗口,我们将检查该窗口内的所有项目/元素是否为 1,然后将第一个项目返回为 1,并将剩余值更改为0 的。
index Time Input
0 11 0
1 22 0
2 33 0
3 44 1
4 55 1
5 66 1
6 77 0
7 88 0
8 99 0
9 1010 0
10 1111 1
11 1212 1
12 1313 1
13 1414 0
14 1515 0
我的预期输出如下
index Time Input What_I_got What_I_Want
0 11 0 0 0
1 22 0 0 0
2 33 0 0 0
3 44 1 1 1
4 55 1 1 0
5 66 1 1 0
6 77 1 1 1
7 88 1 0 0
8 99 1 0 0
9 1010 0 0 0
10 1111 1 1 1
11 1212 1 0 0
12 1313 1 0 0
13 1414 0 0 0
14 1515 0 0 0
我应该怎么做才能获得所需的输出?我的代码中是否缺少某些内容?
【问题讨论】:
这真的不是滑动窗口。这只是将 111 替换为 100。即检查下面的代码 @Onyambu,谢谢。您的建议很有帮助。 【参考方案1】:将熊猫导入为 pd 重新导入
pd.Series(list(re.sub('111', '100', ''.join(df.Input.astype(str))))).astype(int)
Out[23]:
0 0
1 0
2 0
3 1
4 0
5 0
6 1
7 0
8 0
9 0
10 1
11 0
12 0
13 0
14 0
dtype: int32
【讨论】:
感谢您发布此内容以使更广泛的受众受益,我遇到了类似的问题,您的建议对我有很大帮助@Onyambu以上是关于当熊猫数据框窗口中的项目相同时如何返回第一个项目?的主要内容,如果未能解决你的问题,请参考以下文章