Векторизация кадра данных Python Pandas - PullRequest
1 голос
/ 01 ноября 2019

У меня есть файл csv, который я читаю в кадре данных Python Pandas. Я хочу векторизовать операцию для запуска очистки данных в столбцах с набором пользовательских функций для определенных столбцов и добавить результаты к кадру данных.

Я могу читать записи и обрабатывать их 1 на 1, но хочу векторизовать операцию с помощью функции Pandas, работающей с целым столбцом 1 *.

Входной кадр данных

   A   B   C   D
0  a   b   c   d
1  t   f   h   e
2  j   r   y   k

Я хочу выполнить очистку данных (DC*) для столбцов столбцов A, B and C.

   A   B   C   D   DC1-A   DC2-B   DC3-D
0  a   b   c   d    1       0       -1
1  t   f   h   e    1       -1      0
2  j   r   y   k    0       1       1

Приведенная выше матрица показывает, какие данные были очищены, а какие нет. В столбцах DC1-A, DC2-B and DC3-B значения 1 показывают, что данные очищены, 0 - данные, которые не нужно очищать, и -1 данные не могут быть очищены.

1 Ответ

0 голосов
/ 02 ноября 2019

Я искал способ векторизации обработки двумерного массива по столбцам. Способ сделать это описан в статье Софии Хейслер:

https://engineering.upside.com/a-beginners-guide-to-optimizing-pandas-code-for-speed-c09ef2c6a4d6

Для векторизации кадра данных Pandas (df): df ['distance'] = function1 (40.671, -73.985,df ['широта'], df ['longitude'])

Векторизация Numpy Dataframe из кадра данных Pandas (df):

df ['distance'] = function1 (40.671,-73.985, df ['широта']. Значения, df ['долгота']. Значения)

function1 должна иметь возможность работать с вектором 1D для параметров 3 и 4

function1вернет одномерный вектор, который обработал столбец широты в примере выше.

Спасибо

...