Как я могу взять этот фрейм данных pandas, который у меня есть в python, и перенести его в таблицу Postgres

Я извлек эти данные из онлайн-базы данных с помощью биосервисов на Python и сохранил их как переменную "d".

      from bioservices import UniProt
u = UniProt(verbose=False)
d = u.search("family:kinase+and+reviewed:yes+and+taxonomy:9606", frmt="tab", limit=650,
             columns="id,protein names,lineage(CLASS),organism,lineage(SPECIES GROUP),lineage(FAMILY),lineage(SUBFAMILY),go(molecular function),go(biological process),go(cellular component),sequence")

Затем я превратил эти данные в аккуратный маленький фреймворк с помощью pandas

      import io
import pandas as pd
data = d
io_data = io.StringIO(data)
df = pd.read_csv(io_data, sep='\t')
print(df)

Это результат, который я получаю в Python

Последнее, что я пытаюсь сделать, это написать код на Python, который берет этот фрейм данных и помещает его в таблицу, которая у меня уже есть в базе данных Postgresql. Мне нужно использовать неявную вставку для передачи этих данных в мою уже существующую таблицу в postgres, поскольку имена столбцов не совпадают

Это запрос, который я выполнил в Postgresql, чтобы создать таблицу, в которую я хочу передать данные.

СЦЕНАРИЙ ЗАПРОСА:

      CREATE TABLE "PROTEINS" (
  "uniprot_id (PK)" character varying(25),
  "protein_name" character varying(500),
  "hgnc_symbol" character varying(25),
  "symbol_synonyms" character varying(100),
  "entrez_gene_id" integer,
  "target_chembl_id" character varying(20),
  "protein_class" character varying(100),
  "protein_target_type" character varying(30),
  "protein_organism" character varying(150),
  "protein_group" character varying(150),
  "protein_family" character varying(150),
  "protein_subfamily" character varying(150),
  "go_molecular_function" text,
  "go_biological_process" text,
  "go_cellular_component" text,
  "pathway_id" text,
  "protein_sequence" text,
  "kinase_domain_position_start" integer,
  "kinase_domain_position_end" integer,
  "atp_binding_pocket_position_start" integer,
  "atp_binding_pocket_position_end" integer
);

столбцы в моем фрейме данных pandas, которые я хочу соответствовать столбцам в моей таблице postgresql:

Столбец "id" в кадре данных pandas переходит в "uniprot_id (PK)" в postgres

"имена белков" переходит в "имя_протеина"

"происхождение (КЛАСС)" переходит в "класс_протеина"

"организм" переходит в "белок_организм"

"происхождение (ГРУППА ВИДОВ)" переходит в "группу_протеинов"

"происхождение (СЕМЬЯ)" переходит в "протеин_семейство"

"происхождение (ПОДСЕМЕЙСТВО)" переходит в "белковое_подсемейство"

"go (молекулярная функция)" переходит в "go_molecular_function"

"go (биологический процесс)" переходит в "go_biological_process"

"go (сотовый компонент)" переходит в "go_cellular_component"

«последовательность» переходит в «протеин_последовательность:

Вид длинного вопроса, извините, но я был бы очень признателен за помощь. Спасибо

0 ответов

Другие вопросы по тегам