Python Pandas DataFrame GroupBy和基于分组数据子集的新计算列

Python Pandas DataFrame GroupBy和基于分组数据子集的新计算列,python,pandas,dataframe,websocket,Python,Pandas,Dataframe,Websocket,我是熊猫队的新手,根据评论,我选择了熊猫队,因为它似乎是最受欢迎、最容易合作的球队。我的目的是使用异步进程快速处理数据(pandas并不真正支持异步,但还没有达到这个问题)。如果您认为我可以根据以下场景使用更好的库来满足我的需求,请让我知道 我的代码使用asyncio运行WebSocket,它不断地获取活动数据并将其存储到数据框中,如下所示: data_set.loc[len(data_set)] = [datetime.now(),res['data']['E'] ,res['data']['

我是熊猫队的新手,根据评论,我选择了熊猫队,因为它似乎是最受欢迎、最容易合作的球队。我的目的是使用异步进程快速处理数据(pandas并不真正支持异步,但还没有达到这个问题)。如果您认为我可以根据以下场景使用更好的库来满足我的需求,请让我知道

我的代码使用asyncio运行WebSocket,它不断地获取活动数据并将其存储到数据框中,如下所示:

data_set.loc[len(data_set)] = [datetime.now(),res['data']['E'] ,res['data']['s'] ,res['data']['p'] ,res['data']['q'] ,res['data']['m']]
这似乎在打印结果时起作用。数据帧很快变大,因此有清理函数检查数据帧的len()和drop()行

我的目的是获取数据集中的完整集合,并基于组值创建摘要视图,并使用分组数据和不同日期时间捕捉的数据点计算附加值作为分析。这些计算每秒将运行多次。 我的意思是(一切都是虚构的,不是工作代码示例,只是需要什么的原则):

我已经在谷歌上搜索了一百万个东西,每次的例子都很基本,对我的场景没有帮助


感谢您的帮助。

我想这个问题有点含糊不清,但经过更多的研究(谷歌搜索)和尝试/错误(几个小时)后,我终于完成了我在这里提到的所有内容。 希望能帮助新手节省一些时间:

stats_data = data.loc[trade_data.groupby('name')['date_time'].idxmax()].reset_index(drop=True)
1_day_ago = data.loc[data[data.date_time > day_1].groupby("name")["date_time"].idxmin()].drop(labels = ['date_time','id','volume','flag'], axis=1).set_index('name')['value']
stats_data['change_over_1_day'] = stats_data['value'].astype('float') / stats_data['name'].map(1_day_ago).astype('float') * 100 - 100
相同的主体应用于其他列。
如果有人有更高效/更快的方法,请发布您的答案。

您应该将Dask用于异步进程-
stats_data = data.loc[trade_data.groupby('name')['date_time'].idxmax()].reset_index(drop=True)
1_day_ago = data.loc[data[data.date_time > day_1].groupby("name")["date_time"].idxmin()].drop(labels = ['date_time','id','volume','flag'], axis=1).set_index('name')['value']
stats_data['change_over_1_day'] = stats_data['value'].astype('float') / stats_data['name'].map(1_day_ago).astype('float') * 100 - 100