Заполните и сгенерируйте фрейм данных Pandas, используя условия из другого фрейма данных - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть 2 кадра данных, один из которых имеет отдельные данные, а другой - это правило конфигурации для отдельных данных.Это кадры данных:

df1:

  employee_Id first_Name  last_Name    email_Address   
0       E1000       Manas         Jani      jam@xyz.com
1       E2000         Jim         Kong      jik@xyz.com
2       E3000       Olila   Jayavarman      olj@xyz.com
3       E4000        Lisa     Kopkingg      lik@xyz.com
4       E5000     Kishore      Pindhar      kip@xyz.com
5       E6000        Gobi        Nadar      gon@xyz.com

df2:

  Input_file_name Is_key Config_file_name           Value
0     Employee ID      Y      employee_Id  idTypeCode:001
4        EntityID      N        entity_Id    entity_Id:01

Мне нужно, чтобы мой итоговый отдельный кадр данных выглядел следующим образом,

Result_df:

employee_Id first_Name  last_Name    email_Address      idTypeCode  entity_Id
0       E1000       Manas         Jani      jam@xyz.com         001         01
1       E2000         Jim         Kong      jik@xyz.com         001         01
2       E3000       Olila   Jayavarman      olj@xyz.com         001         01
3       E4000        Lisa     Kopkingg      lik@xyz.com         001         01
4       E5000     Kishore      Pindhar      kip@xyz.com         001         01
5       E6000        Gobi        Nadar      gon@xyz.com         001         01

Я не могу понять, как получить столбец Value в конечном кадре данных.

1 Ответ

0 голосов
/ 28 ноября 2018

То, что вы хотите сделать, не совсем ясно.Однако я надеюсь, что это может вам помочь.

Сначала работаем над первым набором данных для извлечения значений.

import pandas as pd
import io

# test data
zz = """Input_file_name Is_key Config_file_name           Value
0     Employee ID      Y      employee_Id  idTypeCode:001
4        Entity ID      N        entity_Id    entity_Id:01
"""

df = pd.read_table(io.StringIO(zz), delim_whitespace=True)


extract = df['Value'].str.split(':',expand=True).transpose()
extract.columns = extract.iloc[0]
extract = extract.drop(extract.index[0]).reset_index(drop=True)
print(extract)

# 0 idTypeCode entity_Id
# 0        001        01

Затем объединяем два.

# test data
zz = """employee_Id first_Name  last_Name    email_Address   
0       E1000       Manas         Jani      jam@xyz.com
1       E2000         Jim         Kong      jik@xyz.com
2       E3000       Olila   Jayavarman      olj@xyz.com
3       E4000        Lisa     Kopkingg      lik@xyz.com
4       E5000     Kishore      Pindhar      kip@xyz.com
5       E6000        Gobi        Nadar      gon@xyz.com
"""
empl = pd.read_table(io.StringIO(zz), delim_whitespace=True)

pd.concat([empl, extract], axis=1, join='outer', ignore_index=True).fillna(method='ffill')

#   employee_Id first_Name   last_Name email_Address idTypeCode entity_Id
# 0       E1000      Manas        Jani   jam@xyz.com        001        01
# 1       E2000        Jim        Kong   jik@xyz.com        001        01
# 2       E3000      Olila  Jayavarman   olj@xyz.com        001        01
# 3       E4000       Lisa    Kopkingg   lik@xyz.com        001        01
# 4       E5000    Kishore     Pindhar   kip@xyz.com        001        01
# 5       E6000       Gobi       Nadar   gon@xyz.com        001        01
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...