当 pandas 数据框 window 中的项目相同时,如何 return 第一项?
How to return first item when the items in the pandas dataframe window are the same?
我是 python 初学者。
我有以下 pandas DataFrame,只有两列; “时间”和“输入”。
我想遍历“输入”列。假设我们有一个 window 大小 w= 3。(三个连续值)这样对于每个选定的 window,我们将检查 window 中的所有 items/elements 是否都是 1 , 然后 return 第一项为 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
我应该怎么做才能获得所需的输出?我的代码中是否遗漏了什么?
导入 pandas 作为 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
我是 python 初学者。 我有以下 pandas DataFrame,只有两列; “时间”和“输入”。
我想遍历“输入”列。假设我们有一个 window 大小 w= 3。(三个连续值)这样对于每个选定的 window,我们将检查 window 中的所有 items/elements 是否都是 1 , 然后 return 第一项为 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
我应该怎么做才能获得所需的输出?我的代码中是否遗漏了什么?
导入 pandas 作为 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