gpt4 book ai didi

python - 有效地从 2 个大型 DataFrame 收集数据并将其合并到 numpy 数组中

转载 作者:太空宇宙 更新时间:2023-11-03 14:00:29 37 4
gpt4 key购买 nike

我有 2 个大型数据框,它们太大而无法合并。两者都包含不同月份的用户日志数据。我需要高效收集每个 id 的所有数据,并创建一个 img/数组。

示例

import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler,MinMaxScaler
import time

n_rows = 90000000
cols = [ 'id','date','d1','d2','d3']

df_march = pd.DataFrame(np.random.randint(1,100, size=(n_rows, len(cols))),
index=np.arange(n_rows), columns=cols)
df_feb = pd.DataFrame(np.random.randint(1,100, size=(n_rows, len(cols))),
index=np.arange(n_rows), columns=cols)

我尝试了什么

def create_img_for_id(id):

start = time.time()
df = df_march[df_march.id==id]
end = time.time()
print 'collecting march data:', end - start
start = time.time()
df = df.append(df_feb[df_feb.id==id])
end = time.time()
print 'appending feb data: ', end - start
start = time.time()
df = df.sort_values(by=['date'], ascending=[False])
end = time.time()
print 'sort', end - start

start = time.time()
img = StandardScaler().fit_transform(df[['d1','d2','d3']])
end = time.time()
print 'fit', end - start
return img

img = create_img_for_id(8)

结果

collecting march data: 31.3800001144
appending feb data: 10.9200000763
sort 0.576999902725
fit 0.484999895096

我需要批量创建img数据以进行学习过程。每个大约 526 个图像。由于内存限制,我需要动态创建它。如何使用 groupby 来解决我的问题?或任何其他有效的方式。

最佳答案

我将使用groupby get_group

gmacth=df_march.groupby('id')
gfeb=df_feb.groupby('id')
gmacth=df_march.groupby('id')
df=pd.concat([gfeb.get_group(8),gmacth.get_group(8)]).sort_values(by=['date'], ascending=[False])
img = StandardScaler().fit_transform(df[['d1','d2','d3']])

关于python - 有效地从 2 个大型 DataFrame 收集数据并将其合并到 numpy 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49280574/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com