कॉलम क्लीनिंग और मानकीकरण

Java में डेटा क्लीनिंग

Dennis Lee

Software Engineer

बुक सेल्स डेटासेट

Books Authors Language First_Published Sales_in_Millions Average_Price
A Tale of Two Cities Charles Dickens English 1859 200.0 12.99
The Little Prince (Le Petit Prince) Antoine de Saint-Exupéry French 1943 200.0 15.50
Harry Potter and the Philosopher's Stone J. K. Rowling English 1997 120.0 19.99
And Then There Were None Agatha Christie English 1939 100.0 14.95
Java में डेटा क्लीनिंग

डेटा टाइप जाँचें

import tech.tablesaw.api.Table;
import tech.tablesaw.api.StringColumn;
import tech.tablesaw.api.DoubleColumn;
Table books = Table.read().csv("bestsellers.csv");

for (String colName : books.columnNames()) {

// कॉलम नाम और उसका टाइप प्रिंट करें System.out.println(colName + ": " + books.column(colName).type()); }
Java में डेटा क्लीनिंग

डेटा टाइप जाँचें: आउटपुट

Books: STRING
Authors: STRING
Language: STRING
First_Published: INTEGER
Sales_in_Millions: INTEGER
Average_Price: DOUBLE
Java में डेटा क्लीनिंग

न्यूमेरिक फ़ॉर्मैट कन्वर्ट करना

// IntColumn को DoubleColumn में बदलें क्योंकि Tablesaw ने इसे INTEGER माना
DoubleColumn sales = books.intColumn("Sales_in_Millions")
      .asDoubleColumn();

System.out.println("कन्वर्ज़न के बाद sales कॉलम का डेटा टाइप: " + sales.type());
Data type of sales column after conversion: DOUBLE
// DoubleColumn को IntColumn में बदलना भी संभव है
IntColumn salesAsInt = sales.asIntColumn();
Java में डेटा क्लीनिंग

कॉलम्स का गुणन

DoubleColumn averagePrice = books.doubleColumn("Average_Price");

// दो कॉलम गुणा कर कुल रेवेन्यू निकालें
DoubleColumn totalRevenue = sales.multiply(averagePrice)

.setName("Total_Revenue_Millions");
books.addColumns(totalRevenue); System.out.println("\nदो कॉलम का गुणन: Sales × Price = Revenue"); System.out.println(books.selectColumns("Books", "Sales_in_Millions", "Average_Price", "Total_Revenue_Millions") .first(4).print());
Java में डेटा क्लीनिंग

कॉलम्स का गुणन: आउटपुट

Multiplying two columns: Sales * Price = Revenue

| Books                               | Sales_in_  | Average_  | Total_Revenue_ |
|                                     | Millions   | Price     | Millions       |
|-------------------------------------|------------|-----------|----------------|
| A Tale of Two Cities                | 200        | 12.99     | 2598           |
| The Little Prince (Le Petit Prince) | 200        | 15.50     | 3100           |
| Harry Potter and                    | 120        | 19.99     | 2398.80        |
|   the Philosopher's Stone           |            |           |                |
| And Then There Were None            | 100        | 14.95     | 1495           |
Java में डेटा क्लीनिंग

कोष्ठक मैच करने का Regex

  • पैटर्न \\(.*\\) कोष्ठक मैच करता है
  • उदाहरण मैच: "(Organic)", "(2 pack)", "(Large)"
  • परिणाम: "Apple (Organic)" → "Apple"
\\(     // ओपनिंग कोष्ठक मैच करें (\ से एस्केप)
.*      // कोई भी कैरेक्टर (.) शून्य या अधिक बार (*)
\\)     // क्लोज़िंग कोष्ठक मैच करें (\ से एस्केप)
Java में डेटा क्लीनिंग

स्पेशल कैरेक्टर्स संभालना

// टाइटल्स से ब्रैकेट वाले अनुवाद हटाएँ
StringColumn titlesNoParentheses = titles
        // हर टाइटल में से कोष्ठक और आसपास की स्पेस हटाएँ
        .map(t -> t.replaceAll("\\(.*\\)", "").trim())
        // नया कॉलम नाम सेट करें
        .setName("Titles without parentheses");

System.out.println("Original: " + titles.get(1)); // पहला आइटम लें
System.out.println("Cleaned: " + titlesNoParentheses.get(1));
Original: The Little Prince (Le Petit Prince)
Cleaned: The Little Prince
Java में डेटा क्लीनिंग

स्ट्रिंग ऑपरेशंस को जोड़ना

// कोष्ठक हटाना और लोअरकेस में बदलना मिलाएँ
StringColumn titlesCombinedCleaning =
        titles.map(t -> t.replaceAll("\\(.*\\)", "") // कोष्ठक हटाएँ

.trim() // आसपास की स्पेस हटाएँ
.toLowerCase()) // लोअरकेस में बदलें .setName("Clean_Titles_Combined"); // कॉलम नाम सेट करें System.out.println("Original title: " + titles.get(1)); System.out.println("Title after cleaning: " + titlesCombinedCleaning.get(1));
Original title: The Little Prince (Le Petit Prince)
Title after cleaning: the little prince
Java में डेटा क्लीनिंग

सब कुछ साथ में लागू करें

books.column(colName).type(); // कॉलम टाइप प्राप्त करें
books.intColumn("Sales_in_Millions").asDoubleColumn(); // टाइप कन्वर्ट करें
DoubleColumn totalRevenue = sales.multiply(averagePrice) // कॉलम्स गुणा करें
    .setName("Total_Revenue_Millions"); // नए कॉलम का नाम
titles.map(String::toLowerCase) // लोअरकेस में बदलें
    .setName("Lowercase_Titles"); // नए कॉलम का नाम
titles.map(t -> t.replaceAll("\\(.*\\)", "").trim()) // कोष्ठक हटाएँ
    .setName("Titles without parentheses"); // नए कॉलम का नाम
Java में डेटा क्लीनिंग

अभ्यास करते हैं!

Java में डेटा क्लीनिंग

Preparing Video For Download...