Skip to main content

A command-line Python package to implement the TOPSIS method.

Project description

Topsis-Kushali-102317148

A Python package implementing the Technique for Order of Preference by Similarity to Ideal Solution (TOPSIS) for Multi-Criteria Decision Making (MCDM). This package works as a Command Line Tool and generates an output CSV file containing the TOPSIS Score and Rank.

Installation

Install the package from PyPI using:

pip install Topsis-Kushali-102317148

Quick Start

Command Syntax

Once installed, you can use the topsis command directly from your terminal, following the syntax given below.

topsis <InputDataFile> <Weights> <Impacts> <ResultFileName>

Parameters

The command accepts exactly 4 parameters:

Parameter Format Example Description
Input file Path string "data.csv" Path to your CSV file
Weights Comma-separated string "1,1,1,1,2" Weight for each criterion
Impacts Comma-separated string "+,+,+,-,+" + for benefit, - for cost
Output file Path string "result.csv" Where to save results

Example Execution

Grab an input csv or excel file strictly adheres to the following structure:

  1. The file must have at least 3 columns- Candidate Identifier column followed by min. 2 criteria.
  2. The first column must contain the names/IDs of the alternatives.
  3. Criteria columns must contain only numeric values.

A sample dataset file (data.csv) is shown below:

Fund Name P1 P2 P3 P4 P5
M1 0.94 0.88 6.5 38.8 11.78
M2 0.69 0.48 4.4 59.8 16.34
M3 0.62 0.38 3.8 41.3 11.53
M4 0.63 0.40 6.1 50.5 14.41
M5 0.78 0.61 5.2 67.8 18.60
M6 0.61 0.37 5.6 34.6 10.30
M7 0.69 0.48 4.8 57.8 15.94
M8 0.75 0.56 6.1 62.4 17.45

Run the following command through the terminal.

topsis data.csv "1,1,1,1,2" "+,+,+,-,+" result.csv

The output file (result.csv) generated will look like this:

Fund Name P1 P2 P3 P4 P5 Topsis Score Rank
M1 0.94 0.88 6.5 38.8 11.78 0.5840384375 2
M2 0.69 0.48 4.4 59.8 16.34 0.4489649725 4
M3 0.62 0.38 3.8 41.3 11.53 0.2617528226 8
M4 0.63 0.40 6.1 50.5 14.41 0.3974983163 6
M5 0.78 0.61 5.2 67.8 18.60 0.5917499869 1
M6 0.61 0.37 5.6 34.6 10.30 0.3159064238 7
M7 0.69 0.48 4.8 57.8 15.94 0.4461587287 5
M8 0.75 0.56 6.1 62.4 17.45 0.5714234615 3

Sample input file is available in the sample_data/ folder. Sample output file is available in the results/ folder.

Important Notes

  • The command accepts exactly four parameters.
  • Number of weights and impacts must match number of criteria columns.
  • Impacts must be only + or -.
  • Make sure the criteria columns must be numeric as mentioned earlier.
  • No cell should be empty.

License

This project is licensed under the MIT License. See LICENSE for more information.

Author

Kushali Gupta
Penultimate-Year Student, BE-CSE
Thapar Institute of Engineering and Technology, Patiala

Let's Connect: GitHub | LinkedIn | Email


If you find this package useful, please ⭐ star it on GitHub!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

topsis_kushali_102317148-1.0.1.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

topsis_kushali_102317148-1.0.1-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file topsis_kushali_102317148-1.0.1.tar.gz.

File metadata

File hashes

Hashes for topsis_kushali_102317148-1.0.1.tar.gz
Algorithm Hash digest
SHA256 d99f6b58e2bbd748d9d22e4dcf2ee2191b210d6fefd8bd9c4f20946fae8c08a9
MD5 fdf41752ad56ae5dc9e9756055638493
BLAKE2b-256 bab0e70eb4694aa2f439db45f7b55f15a2d4cf825c860a56b849236e41db6576

See more details on using hashes here.

File details

Details for the file topsis_kushali_102317148-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for topsis_kushali_102317148-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1d243b21f3bb3284c2dadc8cfe42cd178eb4db00e5a54145e56ee3b3ed96d4d1
MD5 f6e3b60d71fc58f9acc7494ef88e141e
BLAKE2b-256 635c6c08e2cd1bca92093809edec769cf319b969f37fe94be1af30948afd2012

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page