Альтернатива фрагменту python - PullRequest
0 голосов
/ 07 мая 2020

Следующий фрагмент вызывает ошибку памяти при работе с большим объемом данных.

measurer = np.vectorize(len)
res1 = measurer(df_cat.values.astype(str)).max(axis=0)
answer_cat['Maximum']=res1
res2 = measurer(df_cat.values.astype(str)).min(axis=0)
answer_cat['Minimum']=res2

Здесь answer_cat - фрейм данных, в котором все данные столбца преобразуются в строковый тип, чтобы найти максимальную и минимальную длину каждого столбца в фрейме данных. Пожалуйста, помогите мне найти ему альтернативу

1 Ответ

0 голосов
/ 07 мая 2020

Для одного столбца (серии) строк вам не нужно astype(str):

In [518]: df = pd.Series(['one','two','three'])                                                        
In [519]: df                                                                                           
Out[519]: 
0      one
1      two
2    three
dtype: object
In [520]: df.values                                                                                    
Out[520]: array(['one', 'two', 'three'], dtype=object)
In [521]: [len(i) for i in df.values]                                                                  
Out[521]: [3, 3, 5]
In [522]: max([len(i) for i in df.values])                                                             
Out[522]: 5
In [523]: df.values.astype(str)                                                                        
Out[523]: array(['one', 'two', 'three'], dtype='<U5')
In [524]: [len(i) for i in df.values.astype(str)]                                                      
Out[524]: [3, 3, 5]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...