2015-05-12 45 views
7

我正在尋找一個快速腳本,該腳本將通過具有兩列的csv文件運行,並向我提供列B中的值從一個值切換到另一個列的行:確定列值在熊貓數據框中的變化時間

如:

數據框:

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

會告訴我,更改行2和行3之間發生的事情我知道怎麼去使用for循環這些值,但我一直希望有一個更Pythonic方式來解決這個問題。

+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