I have the next DataFrame:
JavaScript
x
2
1
pd.DataFrame(['a','a','a','a','b','b','b','c','c','a'])
2
I need to create a column considering the variation on the other column.
Following this result:
Letter | Number |
---|---|
a | 1 |
a | 0 |
a | 0 |
a | 0 |
b | 1 |
b | 0 |
b | 0 |
c | 1 |
c | 0 |
a | 1 |
Every time the letter change, I need to put a 1.
Advertisement
Answer
shift
I’m assuming that df
is what OP provided
JavaScript
1
2
1
df = pd.DataFrame(['a','a','a','a','b','b','b','c','c','a'])
2
Then reasigned the first column to a series letter
JavaScript
1
19
19
1
letter = df.iloc[:, 0]
2
3
pd.DataFrame({
4
'Letter': letter,
5
'Number': letter.shift().ne(letter).astype(int)
6
})
7
8
Letter Number
9
0 a 1
10
1 a 0
11
2 a 0
12
3 a 0
13
4 b 1
14
5 b 0
15
6 b 0
16
7 c 1
17
8 c 0
18
9 a 1
19