Python numpy用于两列不重复
基本上,我希望不通过AA和BB重复比较来解决问题。如果AA有1,BB将以1开始,而不是重复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'
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
——但是为什么呢?你能再解释一下吗?