Skip to content

Getting started

Initializing a truth table

pyTruthTable uses Pandas Dataframe in its structure. The library enables initialization of truth tables so all possible combinations of true and false are ready-to-use to create relations. There are two way of initializing a truth table:

Method 1 - Use a String array

import pyTruthTable as ptt

tt = ptt.PyTruthTable(["A", "B"])
tt.table_df

Will result:

A B
True True
True False
False True
False False

Remember: You can always get your main truth table using tt.table_df.

Method 2 - Use your own custom dataframe

import pyTruthTable as ptt
import pandas as pd

# Create a custom dataframe to use as input
dataf = pd.DataFrame({'A':[True, True, False, False],
                   'B':[True, False, True, False]})

# Use 'df' parameter to initialize the truth table
tt = ptt.PyTruthTable(df=dataf)

tt.table_df

Will result:

A B
True True
True False
False True
False False

Creating relations

Appending a new column

The logical relation between two columns can be computed using append(.). The first parameter is the logic operation followed by the first and second argument.

import pyTruthTable as ptt

tt = ptt.PyTruthTable(["A", "B"])
tt.append("and", "A", "B") 
A B A ^ B
True True True
True False False
False True False
False False False

Indexing

You can reference the existing columns with both column name or index.

import pyTruthTable as ptt

tt = ptt.PyTruthTable(["A", "B"])
tt.append("not", 0) # Column 0 = "A"
tt.append("or", "B", -1) # Index = -1 means the last column (not_A)
A B ¬ A B v (¬ A)
True True False True
True False False False
False True True True
False False True True

Renaming a column

The new column will always be named automaticaly with the operation, howerver you can specify the name for the new column.

import pyTruthTable as ptt

tt = ptt.PyTruthTable(["A", "B"])
tt.append("not", 0, name="Banana") # Banana = Not A
tt.append("nand", "Banana", "A") 
A B Banana ¬ ((Banana) ^ A)
True True False True
True False False True
False True True True
False False True True

Generate a column without append

You can use column(.) to only calculate and return the new column, without it being added to your main truth table table_df.

import pyTruthTable as ptt

tt = ptt.PyTruthTable(["A", "B"])
tt.column("and", "A", "B")

Will return:

A ^ B
True
False
False
False

Appending a new dataframe to the existing one

You can append a custom dataframe using append_df(.).

The number of rows of each column must be the same.

import pyTruthTable as ptt
import pandas as pd

# Initialize truth table
tt = ptt.PyTruthTable(["A", "B"])

# Define your dataframe
dataf = pd.DataFrame({'C':[True, True, False, False],
                   'D':[True, False, True, False]})

# Append the new df
tt.append_df(dataf)

tt.table_df
A B C D
True True True True
True False True False
False True False True
False False False False