假设我有一个数据帧,其中数据是按照时间排序的。我有一个列作为权重,我想找到相对于当前索引的最大权重。例如,第10行的最大值是从元素11到末尾。
我最终编写了这个函数。但性能是一个很大的威胁。在
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
有比这更好的手术方法吗?在
您可以将^{} 与^{} 一起使用以反转顺序:
相关问题 更多 >
编程相关推荐