Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python numpy用于两列不重复_Python_Pandas_Numpy_Dataframe - Fatal编程技术网

Python numpy用于两列不重复

Python numpy用于两列不重复,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,基本上,我希望不通过AA和BB重复比较来解决问题。如果AA有1,BB将以1开始,而不是重复 import numpy as np df2 = pd.DataFrame({ 'A': np.array([1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0], dtype='int32'), 'B': np.array([0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1], dtype='int32') }) df2['AA'

基本上,我希望不通过AA和BB重复比较来解决问题。如果AA有1,BB将以1开始,而不是重复

import numpy as np
df2 = pd.DataFrame({ 
  'A': np.array([1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0,  0, 0], dtype='int32'),
  'B': np.array([0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0,  0, 1], dtype='int32')
  })



df2['AA'] = np.where( (df2['A'] > df2['A'].shift(1)),1,0)
df2['BB'] = np.where(( (df2['B'] > df2['B'].shift(1))),1,0)

df2
Out[24]: 
    A  B  AA  BB
0   1  0   0   0
1   1  0   0   0
2   0  0   0   0
3   1  0   1   0
4   0  1   0   1
5   1  0   1   0
6   1  0   0   0
7   0  1   0   1
8   0  1   0   0
9   0  0   0   0
10  0  0   0   0
11  0  0   0   0
12  0  1   0   1
我越来越喜欢BB了。如果AA有1,下一个BB应该得到1,而不是重复

import numpy as np
df2 = pd.DataFrame({ 
  'A': np.array([1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0,  0, 0], dtype='int32'),
  'B': np.array([0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0,  0, 1], dtype='int32')
  })



df2['AA'] = np.where( (df2['A'] > df2['A'].shift(1)),1,0)
df2['BB'] = np.where(( (df2['B'] > df2['B'].shift(1))),1,0)

df2
Out[24]: 
    A  B  AA  BB
0   1  0   0   0
1   1  0   0   0
2   0  0   0   0
3   1  0   1   0
4   0  1   0   1
5   1  0   1   0
6   1  0   0   0
7   0  1   0   1
8   0  1   0   0
9   0  0   0   0
10  0  0   0   0
11  0  0   0   0
12  0  1   0   1
结果如下。 如果AA在前一行或过去的行中有1,BB将以1开始,而不是在AA处重复1,同样在BB中也不应重复

Out[24]: 
    A  B  AA  BB
0   1  0   0   0
1   1  0   0   0
2   0  0   0   0
3   1  0   1   0
4   0  1   0   1
5   1  0   1   0
6   1  0   0   0
7   0  1   0   1
8   0  1   0   0
9   0  0   0   0
10  0  0   0   0
11  0  0   0   0
12  0  1   0   0

您能告诉我们您想要什么样的产品,以便我们提供帮助吗?我真的不明白你要我们做什么。同意@PaulBrennan。请更好地解释它,并向我们展示所需的输出。@PaulBrennan我现在添加更多细节。@CainãMaxCouto Silva我只添加了更多细节,与两列相比不会重复。您所寻找的逻辑仍然不清楚。我看到的唯一区别是
df2.loc[12,'BB']
中的
0
——但是为什么呢?你能再解释一下吗?你能告诉我们你想要什么样的输出,以便我们能提供帮助吗?我真的不明白你要我们做什么。同意@PaulBrennan。请更好地解释它,并向我们展示所需的输出。@PaulBrennan我现在添加更多细节。@CainãMaxCouto Silva我只添加了更多细节,与两列相比不会重复。您所寻找的逻辑仍然不清楚。我看到的唯一区别是
df2.loc[12,'BB']
中的
0
——但是为什么呢?你能再解释一下吗?