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

时间:2017-02-08 14:23:14

标签: python-2.7 pandas dataframe division

我想在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 

1 个答案:

答案 0 :(得分:2)

您可以按div shift ed DataFrame划分,最后按dropna删除NaN行:

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

另一个删除最后一行的解决方案是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