Использование apply для добавления нескольких столбцов в pandas - PullRequest
1 голос
/ 23 апреля 2020

Я пытаюсь запустить функцию (row_extract) над столбцом в моем фрейме данных, который возвращает три значения, которые я затем хочу добавить к трем новым столбцам.

Я пытался запустить его следующим образом

all_data["substance", "extracted name", "name confidence"] = all_data["name"].apply(row_extract)

но я получаю один столбец со всеми тремя значениями. Я собираюсь перебирать строки, но это не похоже на очень эффективную систему - какие-нибудь мысли?

Это мое текущее решение, но оно требует времени.

for index, row in all_data.iterrows():
    all_data.at[index, "substance"], all_data.at[index, "extracted name"], all_data.at[index, "name confidence"]  = row_extract(row["name"])

1 Ответ

0 голосов
/ 23 апреля 2020

Проверьте тип выходных данных вашей функции или типы данных. Кажется, что это строка.

Вы можете использовать метод "split" для строки, чтобы разделить их.

https://docs.python.org/2/library/string.html https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.split.html

Либо настройте свою функцию так, чтобы она возвращала более одного значения.

Например,

def myfunc():
    ...
    ...
    return x, y, z
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...