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