pandas.DataFrame:如何 div 逐行 [python]

pandas.DataFrame: How to div row by row [python]

我想 div row[i] 通过 row[i+1]pandas.DataFrame

row[i] = row[i+1] / row[i]

例如:

1 2 3 4

4 2 6 2

8 5 3 1

结果是

0.25 1 0.5 2

0.5 0.4 2 2 

你可以除以 div shifted DataFrame, last remove NaN row by dropna:

print (df)
   a  b  c  d
0  1  2  3  4
1  4  2  6  2
2  8  5  3  1

print (df.div(df.shift(-1), axis=1))
      a    b    c    d
0  0.25  1.0  0.5  2.0
1  0.50  0.4  2.0  2.0
2   NaN  NaN  NaN  NaN

df = df.div(df.shift(-1), axis=1).dropna(how='all')
print (df)
      a    b    c    d
0  0.25  1.0  0.5  2.0
1  0.50  0.4  2.0  2.0

另一种删除最后一行的解决方案是 select by iloc:

df = df.div(df.shift(-1), axis=1).iloc[:-1]
print (df)
      a    b    c    d
0  0.25  1.0  0.5  2.0
1  0.50  0.4  2.0  2.0