Создать новый столбец в кадре данных, передав существующий столбец функции SQL - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть фрейм данных, который содержит NAME в виде столбца.

У меня есть оператор DB, который возвращает FIRST_NAME при передаче NAME.

Я пишу сценарий python что-то как показано ниже:

def fname(row):
 cursor.execute(select case when df['name'] = fname then fname else blank end as fname from dual;)
 return cursor.fetchone()[]

df[fname]=df.apply(fname)

Кажется, что выдается "ожидает, что первый аргумент будет строковым или Unicode"

Как передать значение имени одно за другим в функцию выше и сохранить его в новый столбец в том же кадре данных?

Ответы [ 2 ]

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

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

def fname (row): cursor.execute (выберите случай, когда row ['name'] = fname затем fname иначе пустой конец как fname из двойного;) вернуть cursor.fetchone () []

df [fname] = df.apply (fname)

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

Вам нужно указать axis = 1, по умолчанию axis = 0, что означает, что он читает индексы.

df[name]=df.apply(fname, axis=1)

ось {0 или 'индекс', 1 или 'столбцы'}, по умолчанию 0

Ось, по которой применяется функция:

0 или «индекс»: применить функцию к каждому столбцу. 1 или «столбцы»: применить функцию к каждой строке.

Подробнее см. В документации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...