让我说我有一个DataFrame,其中的数据是按照时间排序的。我有一列作为权重,我想找到相对于当前指数的最大权重。例如,第10行的最大值将从元素11到结尾。
我结束了写这个功能。但是,表现是一个很大的威胁。获取相对于熊猫中当前索引的最大值python
import pandas as pd
df=pd.DataFrame({"time":[100,200,300,400,500,600,700,800],"weights":
[120,160,190,110,34,55,66,33]})
totalRows=df['time'].count()
def findMaximumValRelativeToCurrentRow(row):
index= row.name
if index!= totalRows:
tempDf = df[index:totalRows]
val=tempDf['weights'].max()
df.set_value(index,'max',val)
else:
df.set_value(index,'max',row['weights'])
df.apply(findMaximumValRelativeToCurrentRow,axis=1)
print df
有什么更好的办法做到比这个操作?
请提供您的数据的样本。给定 – pshep123
...用增强的代码更新了问题 –