У меня есть DF pandas, который выглядит как ниже, и я пытаюсь транспонировать количество значений в разных строках в следующий формат:
COL1 COL2 COL3
C1 None None
C1 C2 None
C1 C1 None
C1 C2 C3
до
C1 C2 C3
1 0 0
1 1 0
2 0 0
1 1 1
Я нашел этот ответ здесь ( Количество вхождений элементов в Серии в каждой строке DataFrame )
Это делает то, что мне нужно, но это очень медленно для моего набора данных (4 миллиона строк). Я попытался сделать это с 400 000 строк, и он все еще не работает с приемлемой скоростью.
Я полагаю, что этот список выполняет поиск по массиву данных, а применение apply по сути является циклом for. Это массивные петли, которые замедляют процесс. Потенциальные решения здесь по существу упоминают не использовать Apply, что сделало бы выполнение здесь утомительным, учитывая, что у меня есть C1, C2 ... C100 в моем списке и 10 вертикальных столбцов, чтобы проверить счет. Любые советы о том, что я мог бы попробовать здесь, чтобы улучшить производительность?
Вот код ниже:
df_store = df.apply(pd.Series.value_counts, axis=1)[list_lookup].fillna(0)