我创建了这个函数,将Pandas Dataframe 中的组转换为一个单独的数组列表:
def convertPandaGroupstoArrays(df):
# convert each group to arrays in a list.
groups = df['grouping_var'].unique()
mySeries = []
namesofmyseries = []
for group in groups:
#print(group)
single_ts = df[df['grouping_var'] == group]
ts_name = single_ts['grouping_var'].unique()
ts_name = ts_name[0]
namesofmyseries.append(ts_name)
single_ts = single_ts[['time_series', 'value']]
#set the time columns as index
single_ts.set_index('time_series', inplace=True)
single_ts.sort_index(inplace=True)
mySeries.append(single_ts)
return mySeries, namesofmyseries
然而,我的 Dataframe 包含8000万行(许多组,每组包含400行)。我整个上午都在运行这个函数,只有500万行,它似乎永远不会结束。有没有更快的方法来做到这一点?谢谢!
1条答案
按热度按时间7jmck4yq1#
您可以使用
groupby
:1M行的性能: