问题描述
对于下表:
使用Pandas-我想实现desired_output列,当当前单元格下面的值不同时为TRUE-否则为FALSE。
<span class="highlight"></span>Hat</span> Manufacturers
解决方法
将Series.ne
与具有Series.shift
的值进行比较,并将第一个缺失值替换为原始值:
df = pd.DataFrame({'city':list('mmmssb')})
df['out'] = df['city'].ne(df['city'].shift(fill_value=df['city'].iat[0]))
print (df)
city out
0 m False
1 m False
2 m False
3 s True
4 s False
5 b True
对于较旧的熊猫版本,如果没有使用列city
中的缺失值,请用Series.fillna
替换第一个缺失值:
df['out'] = df['city'].ne(df['city'].shift().fillna(df['city']))
,
df['desired_output'] = df['city'].shift().bfill() != df['city']