तो मुद्दा यह है कि मेरे पास एक बड़ा डेटाफ्रेम (कुछ लाखों पंक्तियाँ) हैं और मुझे इसे मीट्रिक के मान के आधार पर अलग-अलग dfs में विभाजित करने की आवश्यकता है (जिसमें df में कई हज़ार अद्वितीय मान हो सकते हैं) और फिर सभी व्यक्तिगत dfs को इसमें डाल दें एक शब्दकोष।

डेटा इस तरह दिखता है:

>>> df.sample(20)
Out[104]: 
                        time       mhi                 metric
1953310  2020-09-26 09:57:59  0.364575   100004_uf7-15_l14-40
5748967  2020-11-15 14:50:27  0.430073  100004_uf11-15_l10-45
3124709  2020-10-17 23:32:50  1.000000   100004_uf5-21_l26-40
2201278  2020-10-01 12:30:26  0.020645  100004_uf09-27_l26-46
5515393  2020-11-14 03:48:50  1.000000   100004_uf9-18_l26-35
1813859  2020-09-25 00:48:42  0.572557   100004_uf7-24_l10-40
1656151  2020-09-24 00:39:28  0.673656  100004_uf07-24_l32-42
4796411  2020-11-10 09:21:54  1.000000   100004_uf5-15_l22-30
92122    2020-07-06 07:20:37  1.000000   100004_uf5-21_l26-30
3690550  2020-10-25 23:40:57  0.268361  100004_uf09-18_l28-42
4946382  2020-11-11 01:58:22  1.000000   100004_uf5-18_l22-35
3899731  2020-11-01 11:48:08  1.000000   100004_uf7-15_l22-30
5996972  2020-11-17 10:55:22  1.000000  100004_uf07-21_l32-42
7471727  2021-01-01 11:52:45  1.000000  100004_uf07-27_l30-42
3669036  2020-10-25 20:10:33  1.000000   100004_uf5-21_l10-35
1166225  2020-09-17 11:58:21  1.000000   100004_uf7-15_l22-30
5832113  2020-11-16 02:52:32  0.349082  100004_uf07-21_l28-54
1458903  2020-09-21 21:04:32  0.524897  100004_uf07-18_l30-42
3094785  2020-10-17 15:46:02  1.000000   100004_uf5-24_l18-30
674615   2020-08-05 02:31:14  0.401657  100004_uf11-18_l34-46

मैं वर्तमान में जो कर रहा हूं वह यह है:

versions = df.metric.unique()
mhi_dict = {ver: df.loc[df.metric == ver] for ver in versions}

फिर भी यह बहुत समय लेने वाला साबित हो रहा है, ~ 1500 अद्वितीय संस्करणों के लिए औसतन 5 मिनट से अधिक समय लगता है। क्या इसे किसी तरह तेज करने का कोई तरीका है?

0
pavel 17 फरवरी 2021, 07:27

1 उत्तर

सबसे बढ़िया उत्तर
df_grouped = df.groupby('metric')
mhi_dict = {}
for key in df_grouped.groups:
  group = df_grouped.get_group(key)
  mhi_dict[key] = group
1
Agyey Arya 17 फरवरी 2021, 07:29
धन्यवाद! मैं अक्सर groupby() का उपयोग नहीं करता और जब मुझे वास्तव में इसका उपयोग करने की आवश्यकता होती है तो मैं इसके बारे में भूल जाता हूं।
 – 
pavel
17 फरवरी 2021, 07:34
निश्चित रूप से कोई समस्या नहीं है, कृपया उत्तर को स्वीकृत के रूप में चिह्नित करें यदि यह आपकी समस्या का समाधान करता है। यह मेरी मदद करेगा, आपका दिन शुभ हो!
 – 
Agyey Arya
17 फरवरी 2021, 07:35
हाँ, जैसे ही SO मुझे जाने देगा। कहते हैं कि मैं केवल 5 मिनट में ही स्वीकार कर सकता हूं।
 – 
pavel
17 फरवरी 2021, 07:36