创建具有多行条件的列
我有下一个数据帧:
pd.DataFrame(['a','a','a','a','b','b','b','c','c','a'])
我需要考虑到另一列的变化来创建一个列。
按照这个结果:
| 信 | 数字 |
|---|---|
| 一种 | 1 |
| 一种 | 0 |
| 一种 | 0 |
| 一种 | 0 |
| 乙 | 1 |
| 乙 | 0 |
| 乙 | 0 |
| C | 1 |
| C | 0 |
| 一种 | 1 |
回答
shift
我假设这df就是 OP 提供的
df = pd.DataFrame(['a','a','a','a','b','b','b','c','c','a'])
然后将第一列重新分配为一个系列 letter
letter = df.iloc[:, 0]
pd.DataFrame({
'Letter': letter,
'Number': letter.shift().ne(letter).astype(int)
})
Letter Number
0 a 1
1 a 0
2 a 0
3 a 0
4 b 1
5 b 0
6 b 0
7 c 1
8 c 0
9 a 1