[英]efficient way to populate pandas dataframe based on conditions from another dataframe
[英]Populate and generate a pandas dataframe using conditions from another dataframe
我有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
列添加到最終數據框。
您想做的不是很清楚。 但是,我希望這會對您有所幫助。
首先處理第一個數據集以提取值。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.