使用pandas优化for循环

时间:2018-03-20 16:59:41

标签: python pandas for-loop optimization

这是我最近发现的一个问题,我非常喜欢设计解决方案。我认为这是一个很好的练习,也是 for loops 和pandas组合的好例子。

我有以下pandas数据框,有三列: ['running','Period_change','Close','sum']

enter image description here

我想实现以下 for 循环的替代方案来加速程序。

import pandas as pd

game = pd.read_csv('test.csv').set_index('timestamp').dropna()
for l in game['runs'].unique():
    game['sum'][game['runs'] == l] = game[game['runs'] == l]['Period_change'].sum()/game[game['runs'] == l]['Close'].iloc[0]

1 个答案:

答案 0 :(得分:1)

IIUC,您的for循环可以由groupby

替换
df['sum']=df.name.map(df.groupby('name').apply(lambda x : x['Period_change'].sum()/x['Close'].iloc[0]))