9th Week Python Experience

Welcome to our latest blog post where we delve into the fascinating world of file handling and pandas, exploring how these essential tools empower data manipulation and analysis in Python.

Python Download

When you download Python, you are downloading the Python programming language interpreter along with its standard library and other necessary files. Here's what typically comes with a Python download:

  1. Python Interpreter: The core component of the Python download is the Python interpreter itself. It is the program responsible for executing Python code. The interpreter reads your Python scripts, compiles them into bytecode, and executes them.

  2. Standard Library: Python comes with a comprehensive standard library that provides a wide range of modules and packages for various purposes, such as file I/O, networking, data manipulation, and more. These modules are included with the Python download and can be imported and used in your Python scripts.

  3. Development Tools: Python downloads often include development tools and utilities, such as IDLE (Integrated Development and Learning Environment), which is a basic Python IDE, and pip (Python Package Installer), which is a package manager for installing additional Python packages.

  4. Documentation: Python downloads usually include documentation in various formats, such as HTML and PDF, which provide comprehensive information about the Python language, standard library modules, and other resources for learning and reference.

  5. Optional Components: Depending on the Python distribution and installer options, there may be additional components included in the download, such as development headers and libraries for compiling Python extensions, sample scripts, and third-party packages.

Overall, when you download Python, you are obtaining everything you need to write, execute, and develop Python code, including the interpreter, standard library, development tools, and documentation.

Interpreter

  • language without the need for compilation. It reads the source code line by line, translates it into machine code or bytecode, and executes it immediately.

  • Examples of programming languages that typically use interpreters include Python, JavaScript, and Ruby.

  • For example, when you run a Python script (example.py) using the Python interpreter (pythonexample.py), the interpreter reads each line of code in example.py, translates it into machine code or bytecode, and executes it on-the-fly.

Compiler

  • A compiler is a program that translates source code written in a high-level programming language into machine code or bytecode that can be executed by a computer. It reads the entire source code, performs various optimizations, and generates executable files.

  • Examples of programming languages that typically use compilers include C, C++, and Go.

  • For example, when you compile a C program (example.c) using a C compiler (gcc example.c -o example), the compiler reads the entire source code in example.c, translates it into machine code, and generates an executable file (example) that can be run independently.

Accessing python interpreter through power shell

When you download and install Python on your system, the Python interpreter becomes accessible from the command line or terminal, including PowerShell on Windows systems. Here's how you can access the Python interpreter through PowerShell:

  1. Open PowerShell: Open PowerShell by searching for "PowerShell" in the Start menu or by typing "powershell" in the Run dialog (Windows Key + R).

  2. Check Python Installation: To verify that Python is installed and accessible, you can run the following command in PowerShell:

     python --version
    

    This command will display the installed Python version if Python is installed correctly.

  3. Access Python Interpreter: To access the Python interpreter directly from PowerShell, you can simply type:

     python
    

    This command will launch the Python interpreter, allowing you to interactively enter Python commands and execute Python scripts.

  4. Exit Python Interpreter: To exit the Python interpreter and return to the PowerShell prompt, you can type:

     exit()
    

    or press Ctrl + Z followed by Enter on Windows.

By accessing the Python interpreter through PowerShell, you can run Python code, execute scripts, and interactively test Python commands directly from the command line environment. This provides a convenient way to work with Python without needing to use a separate IDE or text editor.

IDE (Integrated Development Environment):

  • An IDE is a software application that provides comprehensive facilities to computer programmers for software development. It typically includes a source code editor, build automation tools, and a debugger, all integrated into a single environment.

  • Examples of popular IDEs include Visual Studio Code, PyCharm, and Eclipse.

  • For example, when using PyCharm as an IDE for Python development, you can write Python code in the editor, run and debug Python scripts, manage project dependencies, and perform version control operations—all within the integrated environment of PyCharm.

Spyder (IDE)

"Spyder" is an integrated development environment (IDE) for Python, not "spider." Here's an overview of Spyder:

  • Spyder is an open-source IDE specifically designed for scientific computing and data analysis with Python.

  • It provides a comprehensive set of tools and features tailored to the needs of scientists, engineers, and data analysts.

  • Spyder integrates seamlessly with popular scientific Python libraries such as NumPy, SciPy, Matplotlib, Pandas, and scikit-learn, making it ideal for working with numerical data and performing data analysis tasks.

  • Some key features of Spyder include:

    1. Integrated IPython Console: Spyder comes with an integrated IPython console that provides an enhanced interactive Python environment. It supports features like code autocompletion, syntax highlighting, inline plotting, and access to system commands, making it convenient for iterative development and exploration.

    2. Variable Explorer: Spyder includes a variable explorer that allows users to inspect and interact with variables, arrays, and data frames in memory. This makes it easy to explore data and debug code during development.

    3. Code Editor with Advanced Features: Spyder's code editor offers features like syntax highlighting, code completion, code linting, and code folding. It also supports multiple panes and tabs, making it easy to work with multiple files and projects simultaneously.

    4. Debugging Tools: Spyder includes a powerful debugger with features like breakpoints, variable inspection, and step-by-step execution. This makes it easier to identify and fix errors in Python code.

    5. Integrated Documentation Browser: Spyder includes an integrated documentation browser that allows users to quickly access documentation for Python functions, modules, and packages.

    6. Customization and Extensibility: Spyder is highly customizable and extensible. It allows users to customize the layout, theme, and keyboard shortcuts according to their preferences. Additionally, Spyder supports plugins and extensions, allowing users to add new features and functionality as needed.

Overall, Spyder is a versatile and feature-rich IDE that is well-suited for scientific computing, data analysis, and exploratory programming tasks in Python. Its integrated tools, support for scientific libraries, and focus on productivity make it a popular choice among scientists, engineers, and data analysts.

Reading and Writing to a file

  1. open Spyder (IDE)

  2. Open terminal .

  3. Go in the proper directory .

some important note :-

When you open a file in text mode ('r' for reading), Python reads the contents of the file as text, and by default, it preserves the newline characters (\n) at the end of each line to indicate its the beginning of a new line . So, when you read a line from the file using methods like readline() or iterate over the file object directly, the newline character is included in the string representing each line.

This behavior is intentional and aligns with how text files are typically formatted in many operating systems. Newline characters are used to denote the end of a line in text files. Python does not automatically remove these newline characters when reading text files, so they are included in the strings returned by file reading operations.

If you want to remove the newline characters when reading lines from a text file, you can use methods like strip() or rstrip() to remove leading and trailing whitespace characters, including newline characters, from each line.

For example:

:# Open the file in read mode using 'with' keyword
with open('example.txt', 'r') as file
    for line in file:
        line_without_newline = line.strip()  # Removes leading and trailing whitespace
        print(line_without_newline)

This will print each line without the newline character at the end.

and also :

We use the with keyword to open the file example.txt in read mode ('r'). This ensures that the file is properly closed after the block of code within the with statement finishes executing, even if an exception occurs.

and also :

The f.readlines() method in Python is used to read all the lines from a text file and return them as a list of strings, where each string represents a line of text from the file. Here's an example to illustrate its usage and output:

Suppose we have a file named example.txt with the following contents:

This is line 1.
This is line 2.
This is line 3.

Now, let's use f.readlines() to read all the lines from the file:

# Open the file in read mode
with open('example.txt', 'r') as f:
    lines = f.readlines()

# Print the list of lines
print(lines)

Output:

['This is line 1.\n', 'This is line 2.\n', 'This is line 3.\n']

How to iterate over line in a txt file ?

There are several ways to iterate over lines in a text file in Python. Here are some common methods:

  1. Using a for Loop:

     open('file.txt', 'r') as f:
         for line in f:
             print(line)
    

    This method is simple and efficient. It iterates over each line in the file, assigning each line to the variable line in each iteration of the loop.

  2. Using readline():

     open('file.txt', 'r') as f:
         line = f.readline()
         while line:
             print(line)
             line = f.readline()
    

    This method reads one line at a time using readline() in a loop until it reaches the end of the file.

  3. Using readlines():

     open('file.txt', 'r') as f:
         lines = f.readlines() #list of each line and each element of the list will include a \n at the end 
         for line in lines: 
             print(line)
     #but here you will see a extra blank line btw 2 lines
    

    This method reads all lines from the file into a list using readlines(), then iterates over the list.

can we different string method on a single string at same time ?

we can apply multiple string methods to a single string sequentially in Python. You can chain method calls one after the other, with each method operating on the result of the previous method.

Here's an example:

string = "   Hello, World!   "

# Chaining multiple string methods
result = my_string.strip().lower().replace('hello', 'hi').capitalize()

print(result)  # Output: "Hi, world!"

In this example:

  1. .strip() removes leading and trailing whitespace characters.

  2. .lower() converts the string to lowercase.

  3. .replace('hello', 'hi') replaces all occurrences of the substring "hello" with "hi".

  4. .capitalize() capitalizes the first character of the string.

Each method is applied sequentially to the result of the previous method, resulting in the final transformed string.

Big text file handling

We have a text file of 231 mb which has phone numbers and we want to find a particular phone number in this file :

Very big files : a tip Big files,

like a file of 12gb may not open but we can always handle these files by reading them line by line.

Ceaser Cipher

Will be creating a file which contains paragraph on something, and then we will be encrypting it and saving it in a different file. with the help of spider.

  1. creation of a folder name "book.txt"

  1. storing some text in it about spyder without any symbols and spaces.

  1. creaing a code to make them all in lower case and saving it in the book.txt

  1. Created a function. which directs each of the letter. away from itself three step forward in the list of L.

  1. finally Created a new encrypted _book.txt hen reading each character of the book.txt and pointing it to encrypted value. then storing it in the encrypted _book.

  1. results:

Before : it was a normal text

After : we changed it to a encrypted text

File handling and genetic sequence

human.txt is a file of human genes i.e sequence of actg If the genes follow any sequence that means he/she is predisposed to some disease. Suppose if ‘GTATGAC’ sequence is present it means he/she is diabetic. This is what ‘human.txt’ looks like:-

Let’s write a program to find if a person is diabetic or not :

f=open('human.txt',"r")
seq=f.read()
diab=("GTATGAC")
print(diab in seq)

#this code identifies if the human has diabetic gene or not

Pandas

why pandas ?

Panda is a library which is high performance and data manipulation tool. Lets handle a csv file using file handling methods , and pandas then we will able to appreciate the beauty of pandas.

Let’s calculate total marks of the topper from scores.csv :

f=open("studentcards.csv","r")
# Assuming f is a file object opened for reading

# Read the first line to skip headers
f.readline()

# Initialize max_score to a very low value
max_score = 0

# Iterate over each line in the file
for record in f:
    # Split the record into fields using ","
    fields = record.strip().split(",")

    # Convert the 8th field (index 7) to an integer
    score = int(fields[8])

    # Update max_score if the current score is greater
    if score > max_score:
        max_score = score

print(max_score)

So using file handling, we need to deal with so much complications like strip method, then we need to reconsider the first line of the csv file. and we need to form a code. Then we can find them backspace. But in pandas, we can easily tackle this problem with only just three lines of code that. why Pandey is so efficient and user friendly. and Time Efficient.

what does this scores holds ?

what else can we do with pandas ?

More on pandas

In reference to the CSV file created above, here's how DataFrame and Series are defined:

  1. DataFrame:

    • In this context, the DataFrame represents the entire dataset containing information about students.

    • Each row in the DataFrame corresponds to a student's information, such as CardNo, Name, Gender, DateOfBirth, City Town, Mathematics, Physics, Chemistry, and Total.

    • The DataFrame organizes the data in a tabular format, where each column represents a different attribute or variable, and each row represents a different student.

    • The DataFrame allows for easy manipulation, analysis, and visualization of the student data.

  2. Series:

    • In the context of this dataset, a Series represents a single column of data extracted from the DataFrame.

    • Each column in the DataFrame can be extracted as a Series, containing values of a specific attribute for all students.

    • A Series contains the values of a particular attribute (e.g., Mathematics scores, Gender) for all students in the dataset.

    • Each value in the Series is associated with an index, which corresponds to the row number in the DataFrame.

Example of DataFrame:

| CardNo | Name    | Gender | DateOfBirth | City Town    | Mathematics | Physics | Chemistry | Total
---------------------------------------------------------------------------------------------------------
| 0      | Alice   | Female | 2005-09-01  | New York     | 85          | 90      | 78        | 253
| 1      | Bob     | Male   | 2004-01-10  | London       | 72          | 88      | 82        | 242
...

Example of Series (extracted from the DataFrame):

  • Series representing the "Total" column:
0    253
1    242
...
Name: Total, dtype: int64

In summary, in reference to the provided CSV data, DataFrame represents the entire dataset of student information, while Series represents individual columns extracted from the DataFrame, containing values of specific attributes for all students.

Pandas is indeed a powerful tool for data manipulation and analysis in Python, offering a wide range of functionalities that can significantly simplify complex tasks. Here are some key benefits of using Pandas:

  1. Simplified Data Handling: Pandas provides intuitive data structures like DataFrame and Series, which allow for easy handling and manipulation of tabular data.

  2. Efficient Data Analysis: With Pandas, you can perform various data operations such as filtering, sorting, grouping, and aggregation with just a few lines of code, eliminating the need for complex nested iterations and conditions.

  3. Readable and Concise Code: Pandas offers a high-level interface that enables you to express your data operations in a clear and concise manner, making your code more readable and maintainable.

  4. Integration with Other Libraries: Pandas seamlessly integrates with other Python libraries such as NumPy, Matplotlib, and Scikit-learn, allowing you to leverage their functionalities for data analysis, visualization, and machine learning tasks.

  5. Built-in Data Cleaning and Transformation: Pandas provides built-in functions for handling missing values, removing duplicates, converting data types, and performing other data cleaning and transformation tasks, saving you time and effort.

  6. Wide Range of IO Tools: Pandas supports reading and writing data from various file formats such as CSV, Excel, SQL databases, JSON, HTML, and more, making it easy to work with data from different sources.

  7. Fast and Efficient: Pandas is built on top of NumPy, which makes it fast and efficient for processing large datasets, enabling you to analyze and manipulate data quickly even with millions of records.

In summary, Pandas simplifies data analysis tasks in Python by providing a user-friendly interface, powerful data structures, and efficient data manipulation capabilities, ultimately making the process of working with data more productive and enjoyable.