Создать новые таблицы из столбцов главной SQL таблицы - PullRequest
0 голосов
/ 18 января 2020

У меня есть основная SQL таблица, например:

Main Table

I wi sh для создания из нее новых таблиц. Он будет разделен так, что каждый столбец из основной таблицы будет новой SQL таблицей (с именем «столбец»), а столбцы в новой таблице будут иметь дату (отсортировано самое раннее -> самое новое):

Таблица называется «Вес» будет:

enter image description here

Таблица под названием «Зарплата» будет:

enter image description here

Я использую python 3 и sqlite, и я могу извлечь (~ 200) имен столбцов главной таблицы в словарь или pandas фрейм данных, используя:

conn = sqlite3.connect(database)
tbl_info_command = "PRAGMA TABLE_INFO({table});".format(table=table)
df = pd.read_sql_query(tbl_info_command, conn)
attributes_wanted = ['name', 'type']
df_shrunk = pd.DataFrame(df, columns=attributes_wanted)

Но не знаете, как перевести это в вышеприведенные таблицы, и даже не считаете ли al oop из dict / df наиболее эффективный подход. Или sql имеет встроенную функцию?

1 Ответ

0 голосов
/ 18 января 2020

Вы можете использовать Pandas .DataFrame.pivot . Смотрите реализацию ниже:

>>> df = pd.DataFrame({
    'Name': ['John', 'Allison', 'John', 'Allison'],
    'Date': ['20160101', '20160101', '20170605', '20170605'],
    'Weight': [80, 55, 84, 58],
    'Salary': [10000, 22000, 18000, 30000]
})
>>> df

    Name    Date    Weight  Salary
0   John    20160101    80  10000
1   Allison 20160101    55  22000
2   John    20170605    84  18000
3   Allison 20170605    58  30000

>>> df.pivot(index='Name', columns='Date', values='Weight')


Date    20160101    20170605
Name        
Allison 55          58
John    80          84

>>> df.pivot(index='Name', columns='Date', values='Salary')

Date    20160101    20170605
Name        
Allison 22000       30000
John    10000       18000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...