Skip to content

rjspann9/AirMap

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Airtable logo

AirMap

AirMap is a data mapper powered by Airtable. Easily keep track of data dictionaries, mappings, sources, columns, and validations.

Benefits

  • Update master data mappings in Airtable, AirMap will automatically update your pipelines to match what you have in the cloud!
  • Airtable centralizes all of your data's information, everything you need in one place.
  • No need to send static documents back and forth, easily collaborate with others via Airtable's easy-to-use web/desktop GUIs.
  • Quickly manage, control, and share your data mappings, validations, and data dictionaries.

Check out the Airtable base here to get an idea of how the data information is organized.



Examples:

Map data using a data-map from Airtable

(e.g. 'Project A - Client Summary', view the base here)

Demo Input Data Sources

Internal_Import_Format2 Internal_Table_Format1 Internal_Import_Format1
ServicerID DocumentID
0 1938472929 AJ3fLN32jS1SK2
1 1293018083 J2sjldw3nSk4S2l
2 9420410832 2Pn28dh1lsdD0Q
ServiceLineID ProviderID
0 20394822 1938472929
1 20428284 1293018083
2 19428292 9420410832
ServiceDate ClientDOB PurchaseAmount ProviderID PurchaseCount ClientReview
0 10/09/2021 7/4/1776 $103.20 1938472929 4 4.5
1 10/07/2021 12/30/1899 $120.12 1293018083 5 4.1
2 10/08/2021 1/26/1980 $84.23 9420410832 2 3.7
# Pass the data sources to AirMap and specify the output format you want to create.
# AirMap will automatically organize and map the data sources into your output format designed in Airtable.

Internal_Import_Format1 = pd.read_csv("Internal_Import_Format1.csv",dtype=str)
Internal_Import_Format2 = pd.read_csv("Internal_Import_Format2.csv",dtype=str)
Internal_Table_Format1 = pd.read_csv("Internal_Table_Format1.csv",dtype=str)

data = {'Internal_Import_Format1' : Internal_Import_Format1,
        'Internal_Import_Format2' : Internal_Import_Format2,
        'Internal_Table_Format1' : Internal_Table_Format1 }

airMap = airtableDataMapper(base_key,airAPI_key)
airMap.findMappingView("Project A - Client Summary").mapData(data)

Resulting output table

Line Service ID ServiceProviderID Date of Service PurchaserDOB PurchaseAmount Document
0 20394822 1938472929 10/09/2021 7/4/1776 $103.20 AJ3fLN32jS1SK2
1 20428284 1293018083 10/07/2021 12/30/1899 $120.12 J2sjldw3nSk4S2l
2 19428292 9420410832 10/08/2021 1/26/1980 $84.23 2Pn28dh1lsdD0Q


You can use AirMap to check a mapping's requirements directly in Python:

# Check input data sources used for a chosen mapping
airMap.findMappingView("Project A - Client Summary").viewInputSources()
['Internal_Import_Format2', 'Internal_Table_Format1', 'Internal_Import_Format1']


# View input data sources used for a chosen mapping
airMap.findMappingView("Project A - Client Summary").viewInputColumns()
InputSource InputColumn OutputColumn
0 Internal_Import_Format1 ServiceDate Date of Service
1 Internal_Import_Format1 ClientDOB PurchaserDOB
2 Internal_Import_Format1 ProviderID ServiceProviderID
3 Internal_Import_Format1 PurchaseAmount PurchaseAmount
5 Internal_Table_Format1 ServiceLineID Line Service ID
4 Internal_Import_Format2 DocumentID Document


# View all mapping details for a chosen mapping
airMap.findMappingView("Project A - Client Summary").viewMap()
OutputColumn InputColumn InputSource MaxLength ColumnPosition DataType Format Active Description Required
0 Date of Service ServiceDate Internal_Import_Format1 10 1 Date mm-dd-yyyy Yes Date of services rendered Y
1 PurchaserDOB ClientDOB Internal_Import_Format1 10 2 Date mm-dd-yyyy Yes Client's date of birth Y
2 ServiceProviderID ProviderID Internal_Import_Format1 10 3 String ########## Yes Service providers ID Y
3 PurchaseAmount PurchaseAmount Internal_Import_Format1 20 4 String $dd.cc Yes Client's purchase Y
5 Line Service ID ServiceLineID Internal_Table_Format1 8 5 String ######## Yes Service providers ID Y
4 Document DocumentID Internal_Import_Format2 10 6 String NaN Yes DocumentID N

About

An ETL tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 61.6%
  • Jupyter Notebook 38.4%