【发布时间】:2019-01-31 07:23:36
【问题描述】:
我试图在我的表中的列中获得最小的增加。
我目前的尝试
import pandas as pd
df = pd.DataFrame({'A': [0, 100, 50, 100],
'B': [5, 2, 2, 0],
'C': [10, 20, 40, 400]})
def lowestIncrease(data, value):
table = data[value].pct_change().fillna(0)
x = data[value][table == table.min(i for i in table if i > 0)].index[0]
if x == 0:
print( 0 )
else:
answer = data[value][x] - data[value][x-1]
print( answer )
我的想法是使用min(),就像我来自这里的方式https://stackoverflow.com/a/27966830/8705615
我想要的输出
in[1]:lowestIncrease(df, 'A')
out[1]:50
in[2]:lowestIncrease(df, 'B')
out[2]:0
in[3]:lowestIncrease(df, 'C')
out[3]:10
我觉得我已经接近我想要实现的目标,我只需要替换我调用table.min(i for i in table if i > 0) 的方式即可获得我想要的输出。如何获得表中大于 0 的值的最小变化?
【问题讨论】:
-
这应该是不是负数的最小增量吗?
-
是的,不是负数的最小增量。如果没有正增长,它应该返回 0
标签: python python-3.x pandas