2017-04-20 156 views

回答

1
s = pd.Series([1, 1, 1, 1, 1, 2, 2, 2, 3, 4, 3, 4, 3, 4, 3, 4, 5, 5, 5]) 

print(s.diff()[s.diff() != 0].index.values) 

OR:

df = pd.DataFrame([1, 1, 1, 1, 1, 2, 2, 2, 3, 4, 3, 4, 3, 4, 3, 4, 5, 5, 5]) 

print(df[0].diff()[df[0].diff() != 0].index.values) 

輸出:

[0 5 8 9 10 11 12 13 14 15 16]

+0

謝謝你的回答!另外還有一個問題,爲什麼數據幀(來自read_csv)會返回每個索引而不是索引值?我用來讀取csv的代碼read_csv(file,sep =',',header = None,skiprows = 1,usecols = [colNum],dtype = np.float 64,na_values = [「」])。我從read_csv打印出DataFrame,它給了我[6,6,6,6,1,1,1,1,1,2,2,2,2,2]但代碼df [0] .diff() ...返回[0,1,2,3,4 ... 11,12,13]。 – ntmt

+0

我懷疑你的第一列或第0列是真正的行號,而不是你所期望的變化值。如果沒有csv和你正在做的確切的閱讀陳述,我很難說。 –

+0

啊,謝謝你,我似乎必須將colNum與df [colNum]相匹配。 – ntmt