2015-05-12 6 views
7

Я ищу, чтобы написать быстрый скрипт, который будет запускаться через файл csv с двумя столбцами и предоставить мне строки, в которых значения в столбце B переключаются от одного значения к другому:Определение значения столбца в pandas dataframe

например:

dataframe:

# | A | B 
--+-----+----- 
1 | 2 | 3 
2 | 3 | 3 
3 | 4 | 4 
4 | 5 | 4 
5 | 5 | 4 

бы сказать мне, что изменение произошло между рядами 2 и строками 3. Я знаю, как получить эти значения, используя для петель, но я надеялся, что там было больше, питоновский подход к решению этой проблемы.

+0

К сожалению вы просите, когда «A» не равно «B» в той же строке? – EdChum

+0

Без сожаления я просто хочу сказать, для каких строк значение в B меняется. Значения в A - это то, что я хочу посмотреть, когда B изменяется, но у меня есть эта часть работы. (Я обновил DF, надеюсь, сделает это более ясным) – badrobit

ответ

10

Вы можете создать новый столбец для разности

> df['C'] = df['B'].diff() 
> print df 
    # A B C 
0 1 2 3 NaN 
1 2 3 3 0 
2 3 4 4 1 
3 4 5 4 0 
4 5 5 4 0 

> df_filtered = df[df['C'] != 0] 
> print df_filtered 
    # A B C 
2 3 4 4 1 

Это ваши необходимые строки

+1

Как вы можете сделать это с различиями для строк? Кажется, что этот diff() работает только для чисел. Я мог бы преобразовать все строки в числа ... – amc

+1

@amc взгляните на https://stackoverflow.com/a/40348884/1451311 – mgilbert

Смежные вопросы