我正在使用loc selection过滤行。
数据帧具有以下结构,其中type
和index
是索引。
type | index | col1 | col2
a | 0 | 2 | 1
b | 1 | 5 | 1
b | 2 | 3 | 4
我要基于2个条件来更改col2
的值:
col1
的值小于下一行的值type
具有不同的值我已经尝试使用index
:
df.loc[(df['col1'] >= df['col1'].shift(-1)) & (df.index != df.shift(-1).index), 'col2'] = 0
它给了我这个错误:
ValueError: cannot set using a multi-index selection indexer with a different length than the value
我也尝试过df["type"]
:
df.loc[(df['col1'] >= df['col1'].shift(-1)) & (df["type"] != df["type"].shift(-1)), 'col2'] = 0
但是它给了我关键错误:
KeyError: 'type'