Как вставить столбец из DataFrame в новый столбец таблицы базы данных с переменным количеством столбцов, используя python - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть DataFrame с данными: (Таблица 1)

column1   column2(variable)
A            2
B            1
C            3
D            5

Значение DataFrame, то есть имя и значения column2, меняются при каждом запуске сценариев.Итак, давайте рассмотрим при следующем запуске, значения в фрейме данных будут такими:

column1   column2(variable)
A            7
B            8
C            9
D            7

Я хочу добавить новые (обновленные значения column2 в таблицу базы данных), чтобы теперь таблица базы данных стала выглядеть примерно так:

column1   column2  column3    
A            2        7
B            1        8
C            3        9
D            5        7

Я могу найти много похожих вопросов о переполнении стека, но ни один из них, похоже, не решает эту проблему, поскольку здесь число столбцов в таблице базы данных меняется при каждом запуске, также в текущем сценарии кода я не могучтобы создать временную таблицу и выполнить трансплантацию, как описано здесь: Добавление дополнительного столбца в (большую) базу данных SQLite из кадра данных Pandas .

Мой код:

df2 = df.groupby('column1').size().reset_index(name=currentDate)

, где currentDate имеет сегодняшнюю дату и, следовательно, таблица имеет 2 столбца сейчас (column1 и currentdate).Я хочу добавить эти данные к уже представленной Таблице 1 (выше) в базе данных, не используя новую временную таблицу (имея в виду, что я должен использовать запрос SQL с именем переменной, т.е. currentDate).

1 Ответ

0 голосов
/ 25 февраля 2019

Сделайте df.iloc[:,-1].name, чтобы получить имя последнего столбца, который добавляется в.
Затем вы можете добавить столбец с помощью обычного назначения

В соответствии с моим пониманием вашего вопроса: предположим, что df - это вашисходной таблицы, и вы пытаетесь добавить в нее дополнительный столбец с тем же именем, что и последний столбец в df2:

df[df2.iloc[:,-1].name] = df2.iloc[:,-1]

Это означает, что:

#Original df
column1   column2
A            2
B            1
C            3
D            5
#Original df2
column1   NEW_NAME
A            7
B            8
C            9
D            7
#New df
column1   column2  NEW_NAME    
A            2        7
B            1        8
C            3        9
D            5        7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...