比较索引值和位置选择

时间:2019-06-13 13:57:27

标签: python pandas dataframe

我正在使用loc selection过滤行。

数据帧具有以下结构,其中typeindex是索引。

type | index | col1 | col2
a    | 0     | 2    | 1
b    | 1     | 5    | 1
b    | 2     | 3    | 4

我要基于2个条件来更改col2的值:

  1. col1的值小于下一行的值
  2. 这两行的索引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'

0 个答案:

没有答案