Добавление новой строки в фрейм данных с правильным отображением в пандах - PullRequest
0 голосов
/ 17 октября 2018

У меня есть что-то вроде кадра данных ниже -

      carrier_plan_identifier           ...            hios_issuer_identifier
1                        AUSK           ...                           99806.0
2                        AUSM           ...                           99806.0
3                        AUSN           ...                           99806.0
4                        AUSS           ...                           99806.0
5                        AUST           ...                           99806.0

Мне нужно выбрать определенный столбец, скажем, wellthie_issuer_identifier.

Мне нужно запросить базу данных на основе этого столбцазначение.Мой запрос на выборку будет выглядеть примерно так:

select id, wellthie_issuer_identifier from issuers where wellthie_issuer_identifier in(....)

Мне нужно добавить столбец id к моему существующему фрейму данных относительно wellthie_issuer_identifier.

Я много искал, ноНепонятно, как это можно сделать.

Ответы [ 3 ]

0 голосов
/ 17 октября 2018

Попробуйте:

1.) выберите конкретный столбец, скажем, wellthie_issuer_identifier

t = tuple(df.wellthie_issuer_identifier) Это даст вам tuple как (1,0,1,1)

2.) запрос к базе данных на основе значения этого столбца

Вам необходимо заменить вышеуказанный кортеж в запросе:

query = """select id, wellthie_issuer_identifier from issuers 
where wellthie_issuer_identifier in{} """

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

cur.execute(query.format(t))
df_new = pd.DataFrame(cur.fetchall())
df_new.columns = ['id','wellthie_issuer_identifier']

Теперь у вашего df_new будут столбцы id, wellthie_issuer_identifier.Вам нужно добавить этот столбец id обратно к существующему df.

Сделайте это: df = pd.merge(df,df_new, on='wellthie_issuer_identifier',how='left')

Это добавит столбец id к df, который будет иметь значения, еслисовпадение найдено в wellthie_issuer_identifier, в противном случае будет установлено значение NaN.

Дайте мне знать, если это поможет.

0 голосов
/ 17 октября 2018

Вы можете добавить другой столбец в фрейм данных, используя pandas, если столбец не слишком длинный, например:

import pandas as pd

df = pd.read_csv('just.csv')
df

   id  user_id  name
0   1        1  tolu
1   2        5    jb
2   3        6   jbu
3   4        7   jab
4   5        9   jbb

#to add new column to the data above

df['new_column']=['jdb','biwe','iuwfb','ibeu','igu']#new values
df

   id  user_id  name new_column
0   1        1  tolu        jdb
1   2        5    jb       biwe
2   3        6   jbu      iuwfb
3   4        7   jab       ibeu
4   5        9   jbb        igu

#this should help if the dataset is not too much 

, тогда вы можете продолжать запрашивать вашу базу данных

0 голосов
/ 17 октября 2018

Это не будет принимать значения для wellthie_issuer_identifier, но, как вы сказали, это будут все значения, которые являются их значениями, тогда ниже будет работать для вас:

df1 = df.assign(id=(df['wellthie_issuer_identifier']).astype('category').cat.codes)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...