পান্ডাস প্লেটোব্লকচেন ডেটা ইন্টেলিজেন্স সহ ডেটা ভিজ্যুয়ালাইজেশন। উল্লম্ব অনুসন্ধান. আ.

পান্ডাদের সাথে ডেটা ভিজ্যুয়ালাইজেশন

ডাটা প্রিপ্রসেসিং-এর পর্যায়ে পান্ডারা এখন পর্যন্ত আমাদের সাহায্য করছে। যদিও, একটি উদাহরণে, হিস্টোগ্রাম তৈরি করার সময়, আমরা পান্ডাস থেকে আরেকটি মডিউলও ব্যবহার করেছি - plotting.

আমরা উদ্দেশ্যপ্রণোদিতভাবে এখন পর্যন্ত এড়িয়ে গেছি, কারণ এটিকে আগে পরিচয় করিয়ে দিলে এটি উত্তর দেওয়ার চেয়ে আরও বেশি প্রশ্ন উত্থাপন করবে। যথা, পান্ডা এবং ম্যাটপ্লটলিব এমন একটি সাধারণ একটি সর্বব্যাপী জুটি ছিল যে পান্ডাসরা ম্যাটপ্লটলিবের কার্যকারিতা একীভূত করতে শুরু করেছে। এটা প্রচন্ডভাবে যেকোন প্রকৃত প্লটিং করার জন্য Matplotlib-এর উপর নির্ভর করে এবং আপনি সোর্স কোডে মোড়ানো অনেক Matplotlib ফাংশন পাবেন। বিকল্পভাবে, আপনি প্লট করার জন্য অন্যান্য ব্যাকএন্ড ব্যবহার করতে পারেন, যেমন চক্রান্ত করে এবং বোকে.

যাইহোক, পান্ডাস আমাদেরকে কয়েকটি প্লটের সাথে পরিচয় করিয়ে দেয় যে নয় Matplotlib এর মানক প্লট প্রকারের একটি অংশ, যেমন কেডিই, অ্যান্ড্রুজ কার্ভস, বুটস্ট্র্যাপ প্লট এবং স্ক্যাটার ম্যাট্রিক্স.

সার্জারির plot() পান্ডাদের কাজ DataFrame দ্বারা নির্দিষ্ট ব্যাকএন্ড ব্যবহার করে plotting.backend, এবং এর উপর নির্ভর করে kind যুক্তি - প্রদত্ত লাইব্রেরি ব্যবহার করে একটি প্লট তৈরি করে। যেহেতু এইগুলির অনেকগুলি ওভারল্যাপ - প্লটের ধরনগুলিকে কভার করার কোন মানে নেই যেমন line, bar, hist এবং scatter. তারা একই কোডের সাথে একই প্লট তৈরি করবে যা আমরা এখনও পর্যন্ত Matplotlib এর সাথে করছি।

আমরা শুধুমাত্র সংক্ষিপ্তভাবে কটাক্ষপাত করব plot() ফাংশন যেহেতু অন্তর্নিহিত প্রক্রিয়াটি এ পর্যন্ত অন্বেষণ করা হয়েছে। পরিবর্তে, আসুন আমরা যে প্লট কিছু ফোকাস নারা ইতিমধ্যেই Matplotlib এর সাথে সহজে কাজ করুন।

এটি একটি খুব সংক্ষিপ্ত অধ্যায় হবে, কারণ ম্যাটপ্লটলিবের তুলনায় পান্ডাদের প্লটিং এবং ভিজ্যুয়ালাইজেশনের ক্ষমতা ফ্যাকাশে – তবে এর মধ্যে কিছু জানার পাশাপাশি এটি থেকে প্লট করার ক্ষমতা সম্পর্কে সচেতন হওয়া এখনও দরকারী। DataFrameসরাসরি।

সার্জারির DataFrame.plot() ক্রিয়া

সার্জারির plot() ফাংশন গ্রহণ করে x এবং y বৈশিষ্ট্য, এবং ক kind যুক্তি. বিকল্পভাবে, এড়াতে kind যুক্তি, আপনি কল করতে পারেন DataFrame.plot.kind() পরিবর্তে, এবং পাস x এবং y বৈশিষ্ট্য.

জন্য গৃহীত মান kind যুক্তি হল: line, bar, barh (অনুভূমিক বার), hist, box, kde, density (এর প্রতিশব্দ kde), area, pie, scatter এবং hexbin (একটি হিটম্যাপের অনুরূপ)।

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] df_eu.plot.bar(x = 'Year', y = 'Value')
df_eu.plot.line(x = 'Year', y = 'Value')
df_eu.plot.box(x='Value') plt.show()

পরিবর্তে প্রদান Series দৃষ্টান্ত যেমন আমরা Matplotlib-এর জন্য করি - এটি প্রদান করার জন্য যথেষ্ট কলামের নাম, এবং যেহেতু আপনি কল করছেন plot() ফাংশন DataFrame আপনি কল্পনা করছেন, পান্ডাদের পক্ষে উপযুক্ত কলামের নামের সাথে এই স্ট্রিং মানগুলি ম্যাপ করা সহজ।

এই কলগুলির প্রতিটি একটি নতুন করে Figure উদাহরণ এবং এটিতে উপযুক্ত মানগুলি প্লট করুন:

পান্ডাস প্লেটোব্লকচেন ডেটা ইন্টেলিজেন্স সহ ডেটা ভিজ্যুয়ালাইজেশন। উল্লম্ব অনুসন্ধান. আ.

একই উপর একাধিক অক্ষ প্লট করতে Figure, আপনি একটি করতে পারেন Figure এবং এক বা একাধিক Axes মাধ্যমে plt.subplots() এবং উপযুক্ত বরাদ্দ করুন Axes থেকে ax প্রত্যেকের যুক্তি plot.plot_type() কল:

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] fig, ax = plt.subplots(3, 1) df_eu.plot.box(x='Value', ax = ax[0])
df_eu.plot.line(x = 'Year', y = 'Value', ax = ax[1])
df_eu.plot.bar(x = 'Year', y = 'Value', rot = 45, ax = ax[2]) plt.show()

কিছু স্ট্যান্ডার্ড আর্গুমেন্ট, যেমন rotation যুক্তি আসলে ভিন্ন plot() কল উদাহরণ স্বরূপ, rotation পর্যন্ত সংক্ষিপ্ত করা হয় rot. এটি একটি বিট চতুর করে তোলে শুধু সুইচ Matplotlib এবং Pandas এর মধ্যে, যেহেতু আপনি সম্ভবত ডকুমেন্টেশন পৃষ্ঠাগুলিতে শেষ করবেন, শুধু পরীক্ষা করে দেখুন কোন আর্গুমেন্ট প্রয়োগ করা যেতে পারে এবং কোনটি নয়।

এখন, পরিবর্তে একটি নতুন তৈরি Figure or Axes উদাহরণস্বরূপ, এই প্লটগুলির প্রতিটি যথাযথভাবে স্থাপন করা হবে Axes দৃষ্টান্তগুলির সাথে আমরা তাদের সরবরাহ করেছি:

পান্ডাস প্লেটোব্লকচেন ডেটা ইন্টেলিজেন্স সহ ডেটা ভিজ্যুয়ালাইজেশন। উল্লম্ব অনুসন্ধান. আ.

সাধারণভাবে, পান্ডাদের সাথে প্লট করা সুবিধাজনক এবং দ্রুত – কিন্তু তবুও, বার প্লট, লাইন প্লট এবং বক্স প্লট করার জন্য, আপনি সম্ভবত ম্যাটপ্লটলিবের সাথে যেতে চাইবেন। এটি উভয়ই অন্তর্নিহিত ইঞ্জিন পান্ডাস অনিবার্যভাবে ব্যবহার করে এবং এতে আরও কাস্টমাইজেশন বিকল্প রয়েছে এবং আপনাকে পান্ডাস প্লটের সাথে ব্যবহার করতে পারেন এমন একটি নতুন আর্গুমেন্ট মনে রাখতে হবে না।

বলা হচ্ছে, কিছু প্লটের জন্য, আপনি পছন্দ করতে চাইতে পারেন পান্ডাস, যেহেতু সেগুলিকে ম্যাটপ্লটলিবে ম্যানুয়ালি তৈরি করতে হবে, এবং তাদের মধ্যে কিছু এমন একটি ঝামেলা তৈরি করে যে এটি প্রচেষ্টার মূল্য নয়, যেমন KDE লাইন।

পান্ডা' চক্রান্ত মডিউল

কি DataFrameভিজ্যুয়ালাইজেশন পরিপ্রেক্ষিতে অফার আছে আমাদের জন্য খুব নতুন নয়. যাইহোক, অন্তর্নিহিত মডিউল তারা কল করে, pandas.plotting আছে। দ্য plotting মডিউলের বেশ কিছু ফাংশন আছে যা আমরা ব্যবহার করতে পারি, যেমন autocorrelation_plot(), bootstrap_plot(), এবং scatter_matrix().

এগুলির প্রত্যেকটি হয় একটি গ্রহণ করে Series বা একটি DataFrame, তারা যে ধরনের ভিজ্যুয়ালাইজেশন তৈরি করছে তার উপর নির্ভর করে, সেইসাথে স্পেসিফিকেশন এবং স্টাইলিং উদ্দেশ্যে প্লট করার জন্য নির্দিষ্ট পরামিতি।

বুটস্ট্র্যাপ প্লট

বুটস্ট্র্যাপিং এলোমেলোভাবে নমুনা (প্রতিস্থাপন সহ) একটি ডেটাসেট, এবং নির্ভুলতার পরিমাপ গণনা করার প্রক্রিয়া যেমন পক্ষপাত, অনৈক্য এবং আস্থা অন্তর এলোমেলো নমুনার জন্য। "প্রতিস্থাপনের সাথে", ব্যবহারিক পরিভাষায়, এর অর্থ হল প্রতিটি এলোমেলোভাবে নির্বাচিত উপাদান আবার নির্বাচন করা যেতে পারে। প্রতিস্থাপন ছাড়া মানে প্রতিটি এলোমেলোভাবে নির্বাচিত উপাদানের পরে, এটি পরবর্তী নমুনার জন্য পুল থেকে সরানো হয়।

A বুটস্ট্র্যাপ প্লট, পান্ডাস দ্বারা তৈরি নমুনার উপর ভিত্তি করে একটি ডেটাসেটের গড়, মধ্য এবং মধ্য-পরিসরের পরিসংখ্যান বুটস্ট্র্যাপ করে size, যার পরে প্লটটি পরবর্তীতে এর মাধ্যমে দেখানো হয় plt.show(). জন্য ডিফল্ট আর্গুমেন্ট size এবং samples হয় 50 এবং 500 যথাক্রমে.

এর মানে হল যে একটি বৈশিষ্ট্যের জন্য, আমরা নমুনা করি 50 মান তারপরে, সেই 50টি মানের জন্য একটি 50-উপাদানের উপ-নমুনা তৈরি করা হয় (সিন্থেটিক ডেটা) এবং তাদের জন্য একটি সংক্ষিপ্ত পরিসংখ্যান (গড়/মধ্য/মধ্য-পরিসীমা) গণনা করা হয়। এই প্রক্রিয়া পুনরাবৃত্তি হয় 500 বার, তাই শেষ পর্যন্ত, আমরা 500টি সংক্ষিপ্ত পরিসংখ্যান পেয়েছি:

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('./datasets/gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] pd.plotting.bootstrap_plot(df_eu['Value']) plt.show()

পান্ডাস প্লেটোব্লকচেন ডেটা ইন্টেলিজেন্স সহ ডেটা ভিজ্যুয়ালাইজেশন। উল্লম্ব অনুসন্ধান. আ.

স্বয়ংক্রিয় সম্পর্ক প্লট

স্বয়ংক্রিয় সম্পর্ক প্লট সময়-সিরিজ ডেটার জন্য ডেটা এলোমেলোতা পরীক্ষা করতে ব্যবহৃত হয়। একাধিক স্বয়ংক্রিয় সম্পর্ক বিভিন্ন টাইমস্ট্যাম্পের জন্য গণনা করা হয়, এবং যদি ডেটা সত্যিই এলোমেলো হয় - পারস্পরিক সম্পর্ক শূন্যের কাছাকাছি হবে। যদি না হয় - পারস্পরিক সম্পর্ক শূন্যের চেয়ে বড় হবে।

আসুন দুটি অটোকোরিলেশন প্লট প্লট করি – একটি আমাদের সাথে মূল্য বৈশিষ্ট্য, এবং একটি সঙ্গে একটি Series এলোমেলো মান দিয়ে ভরা:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
# Filter DataFrame for the EU
df_eu = df.loc[df['Country Name'] == 'European Union']
# Generate 50 random integers between 0 and 100, and turn into a Series
random_series = pd.Series(np.random.randint(0, 100, size=50)) # Plot Autocorrelation Plot for the *Value* feature
pd.plotting.autocorrelation_plot(df_eu['Value'])
# Plot Autocorrelation Plot for the *random_series*
pd.plotting.autocorrelation_plot(random_series) plt.show()

জন্য স্বতঃসম্পর্ক প্লট random_series চারপাশে ঘুরতে হবে 0, যেহেতু এটি র্যান্ডম ডেটা, যখন এর জন্য প্লট Value বৈশিষ্ট্য হবে না:

পান্ডাস প্লেটোব্লকচেন ডেটা ইন্টেলিজেন্স সহ ডেটা ভিজ্যুয়ালাইজেশন। উল্লম্ব অনুসন্ধান. আ.

এটা লক্ষনীয় যে স্বয়ংক্রিয় সম্পর্ক একটি পরিমাপ করে ফর্ম এলোমেলোতার, অসম্পর্কিত হিসাবে, কিন্তু অ র্যান্ডম ডেটা বিদ্যমান। যদি এটি অ-র্যান্ডম হয়, কিন্তু কোন উল্লেখযোগ্য সম্পর্ক না থাকে - অটোকোরিলেশন প্লট নির্দেশ করবে যে ডেটা এলোমেলো।

স্ক্যাটার ম্যাট্রিক্স

স্ক্যাটার ম্যাট্রিক্স চক্রান্ত a গ্রিড সমস্ত বৈশিষ্ট্যের বিপরীতে সমস্ত বৈশিষ্ট্যের জন্য স্ক্যাটার প্লটগুলির। যেহেতু এটি অনিবার্যভাবে প্রতিটি বৈশিষ্ট্যকে নিজের সাথে তুলনা করে, পাশাপাশি - কর্ণ যেখানে এটি ঘটে সাধারণত একটি দিয়ে প্রতিস্থাপিত হয় বারলেখ একটি স্ক্যাটার প্লটের পরিবর্তে সেই বৈশিষ্ট্যের। স্ক্যাটার ম্যাট্রিক্স হিসাবে পরিচিত হয় পেয়ার প্লট, এবং Seaborn একটি প্রস্তাব pairplot() শুধু এই জন্য ফাংশন.

সার্জারির scatter_matrix() ফাংশন একটি গ্রহণ করে DataFrame এবং এর সমস্ত সংখ্যাসূচক বৈশিষ্ট্যগুলির জন্য একটি স্ক্যাটার ম্যাট্রিক্স তৈরি করে এবং এর একটি 2D অ্যারে প্রদান করে Axes স্ক্যাটার ম্যাট্রিক্স গঠিত উদাহরণ. তাদের সম্পর্কে কিছু পরিবর্তন করতে, আপনি তাদের মাধ্যমে পুনরাবৃত্তি করতে চাইবেন:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('worldHappiness2019.csv') axes = pd.plotting.scatter_matrix(df, diagonal='hist') for ax in axes.flatten(): # Rotate back to 0 degrees since they're automatically rotated by 90 ax.yaxis.label.set_rotation(0) # As to not overlap with the Axes instances, set the ticklabel # alignment to 'right' ax.yaxis.label.set_ha('right') plt.show()

এর ফলে অন্যান্য সমস্ত বৈশিষ্ট্যের বিপরীতে সমস্ত বৈশিষ্ট্যের একটি বরং বড় স্ক্যাটার ম্যাট্রিক্স হয়:

পান্ডাস প্লেটোব্লকচেন ডেটা ইন্টেলিজেন্স সহ ডেটা ভিজ্যুয়ালাইজেশন। উল্লম্ব অনুসন্ধান. আ.

এছাড়াও আপনি পাস করতে পারেন diagonal যুক্তি, যা গ্রহণ করে 'hist' or 'kde' আপনি তির্যক উপর প্লট করতে চান কি ধরনের বিতরণ প্লট নির্দিষ্ট করতে, পাশাপাশি alpha, স্ক্যাটার প্লটগুলিতে মার্কারগুলির স্বচ্ছতা নির্দিষ্ট করে৷

সময় স্ট্যাম্প:

থেকে আরো Stackabuse