2017-04-20 88 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