اردو زبان میں 10 منٹ میں پانڈا سیکھیں۔
کے لیے 10 منٹ Pandas
یہ پانڈا کا ایک مختصر تعارف ہے، جو بنیادی طور پر نئے صارفین کے لیے تیار کیا گیا ہے۔ آپ کک بک میں مزید پیچیدہ ترکیبیں دیکھ سکتے ہیں۔
حسب ضرورت، ہم درج ذیل درآمد کرتے ہیں:
In [1]: import numpy as np
In [2]: import pandas as pd
پانڈوں میں ڈیٹا کے بنیادی ڈھانچے
سیریز: کسی بھی قسم کا ڈیٹا رکھنے والی ایک جہتی لیبل والی صف
جیسے کہ عدد، تار، ازگر کی اشیاء وغیرہ۔
ڈیٹا فریم: ایک دو جہتی ڈیٹا ڈھانچہ جس میں ڈیٹا ہوتا ہے جیسے دو جہتی سرنی یا قطاروں اور کالموں والی میز۔
آبجیکٹ کی تخلیق
ڈیٹا ڈھانچے کا تعارف سیکشن دیکھیں۔
اقدار کی فہرست پاس کر کے ایک سیریز بنانا، پانڈوں کو ڈیفالٹ رینج انڈیکس بنانے دینا۔
In [3]: s = pd.Series([1, 3, 5, np.nan, 6, 8])
In [4]: s
Out[4]:
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
date_range() اور لیبل والے کالمز کا استعمال کرتے ہوئے ڈیٹ ٹائم انڈیکس کے ساتھ NumPy سرنی کو پاس کرکے ڈیٹا فریم بنانا:
In [5]: dates = pd.date_range("20130101", periods=6)
In [6]: dates
Out[6]:
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
'2013-01-05', '2013-01-06'],
dtype='datetime64[ns]', freq='D')
In [7]: df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list("ABCD"))
In [8]: df
Out[8]:
A B C D
2013-01-01 0.469112 -0.282863 -1.509059 -1.135632
2013-01-02 1.212112 -0.173215 0.119209 -1.044236
2013-01-03 -0.861849 -2.104569 -0.494929 1.071804
2013-01-04 0.721555 -0.706771 -1.039575 0.271860
2013-01-05 -0.424972 0.567020 0.276232 -1.087401
2013-01-06 -0.673690 0.113648 -1.478427 0.524988
اشیاء کی ایک لغت کو پاس کرکے ڈیٹا فریم بنانا جہاں کلیدیں کالم لیبل ہیں اور اقدار کالم کی قدریں ہیں۔
In [9]: df2 = pd.DataFrame(
...: {
...: "A": 1.0,
...: "B": pd.Timestamp("20130102"),
...: "C": pd.Series(1, index=list(range(4)), dtype="float32"),
...: "D": np.array([3] * 4, dtype="int32"),
...: "E": pd.Categorical(["test", "train", "test", "train"]),
...: "F": "foo",
...: }
...: )
...:
In [10]: df2
Out[10]:
A B C D E F
0 1.0 2013-01-02 1.0 3 test foo
1 1.0 2013-01-02 1.0 3 train foo
2 1.0 2013-01-02 1.0 3 test foo
3 1.0 2013-01-02 1.0 3 train foo
نتیجے میں ڈیٹا فریم کے کالم مختلف قسم کے ہیں:
In [11]: df2.dtypes
Out[11]:
A float64
B datetime64[s]
C float32
D int32
E category
F object
dtype: object
اگر آپ IPython استعمال کر رہے ہیں، تو کالم کے ناموں کے لیے ٹیب کی تکمیل (نیز عوامی صفات) خود بخود فعال ہو جاتی ہے۔ یہاں ان صفات کا ایک ذیلی سیٹ ہے جو مکمل ہو جائے گا:
In [12]: df2.<TAB> # noqa: E225, E999
df2.A df2.bool
df2.abs df2.boxplot
df2.add df2.C
df2.add_prefix df2.clip
df2.add_suffix df2.columns
df2.align df2.copy
df2.all df2.count
df2.any df2.combine
df2.append df2.D
df2.apply df2.describe
df2.applymap df2.diff
df2.B df2.duplicated
جیسا کہ آپ دیکھ سکتے ہیں، کالم A، B، C، اور D خود بخود ٹیب مکمل ہو جاتے ہیں۔ E اور F بھی ہیں؛ بقیہ صفات اختصار کے پیش نظر کاٹ دی گئی ہیں۔
ڈیٹا دیکھنا
In [13]: df.head()
Out[13]:
A B C D
2013-01-01 0.469112 -0.282863 -1.509059 -1.135632
2013-01-02 1.212112 -0.173215 0.119209 -1.044236
2013-01-03 -0.861849 -2.104569 -0.494929 1.071804
2013-01-04 0.721555 -0.706771 -1.039575 0.271860
2013-01-05 -0.424972 0.567020 0.276232 -1.087401
In [14]: df.tail(3)
Out[14]:
A B C D
2013-01-04 0.721555 -0.706771 -1.039575 0.271860
2013-01-05 -0.424972 0.567020 0.276232 -1.087401
2013-01-06 -0.673690 0.113648 -1.478427 0.524988
DataFrame.index یا DataFrame.columns دکھائیں:
In [15]: df.index
Out[15]:
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
'2013-01-05', '2013-01-06'],
dtype='datetime64[ns]', freq='D')
In [16]: df.columns
Out[16]: Index(['A', 'B', 'C', 'D'], dtype='object')
انڈیکس یا کالم لیبل کے بغیر DataFrame.to_numpy() کے ساتھ بنیادی ڈیٹا کی NumPy نمائندگی واپس کریں:
In [17]: df.to_numpy()
Out[17]:
array([[ 0.4691, -0.2829, -1.5091, -1.1356],
[ 1.2121, -0.1732, 0.1192, -1.0442],
[-0.8618, -2.1046, -0.4949, 1.0718],
[ 0.7216, -0.7068, -1.0396, 0.2719],
[-0.425 , 0.567 , 0.2762, -1.0874],
[-0.6737, 0.1136, -1.4784, 0.525 ]])
NumPy arrays میں پوری صف کے لیے ایک dtype ہے جبکہ pandas DataFrames میں فی کالم ایک dtype ہے۔ جب آپ DataFrame.to_numpy() کو کال کریں گے، تو پانڈوں کو NumPy dtype ملے گا جو DataFrame میں تمام dtypes کو رکھ سکتا ہے۔ اگر عام ڈیٹا کی قسم آبجیکٹ ہے، تو DataFrame.to_numpy() کو ڈیٹا کاپی کرنے کی ضرورت ہوگی۔
In [18]: df2.dtypes
Out[18]:
A float64
B datetime64[s]
C float32
D int32
E category
F object
dtype: object
In [19]: df2.to_numpy()
Out[19]:
array([[1.0, Timestamp('2013-01-02 00:00:00'), 1.0, 3, 'test', 'foo'],
[1.0, Timestamp('2013-01-02 00:00:00'), 1.0, 3, 'train', 'foo'],
[1.0, Timestamp('2013-01-02 00:00:00'), 1.0, 3, 'test', 'foo'],
[1.0, Timestamp('2013-01-02 00:00:00'), 1.0, 3, 'train', 'foo']],
dtype=object)
describe() آپ کے ڈیٹا کا فوری اعدادوشمار کا خلاصہ دکھاتا ہے۔
In [20]: df.describe()
Out[20]:
A B C D
count 6.000000 6.000000 6.000000 6.000000
mean 0.073711 -0.431125 -0.687758 -0.233103
std 0.843157 0.922818 0.779887 0.973118
min -0.861849 -2.104569 -1.509059 -1.135632
25% -0.611510 -0.600794 -1.368714 -1.076610
50% 0.022070 -0.228039 -0.767252 -0.386188
75% 0.658444 0.041933 -0.034326 0.461706
max 1.212112 0.567020 0.276232 1.071804
اپنا ڈیٹا منتقل کرنا:
In [21]: df.T
Out[21]:
2013-01-01 2013-01-02 2013-01-03 2013-01-04 2013-01-05 2013-01-06
A 0.469112 1.212112 -0.861849 0.721555 -0.424972 -0.673690
B -0.282863 -0.173215 -2.104569 -0.706771 0.567020 0.113648
C -1.509059 0.119209 -0.494929 -1.039575 0.276232 -1.478427
D -1.135632 -1.044236 1.071804 0.271860 -1.087401 0.524988
DataFrame.sort_index() ایک محور کے حساب سے ترتیب دیتا ہے:
In [22]: df.sort_index(axis=1, ascending=False)
Out[22]:
D C B A
2013-01-01 -1.135632 -1.509059 -0.282863 0.469112
2013-01-02 -1.044236 0.119209 -0.173215 1.212112
2013-01-03 1.071804 -0.494929 -2.104569 -0.861849
2013-01-04 0.271860 -1.039575 -0.706771 0.721555
2013-01-05 -1.087401 0.276232 0.567020 -0.424972
2013-01-06 0.524988 -1.478427 0.113648 -0.673690
DataFrame.sort_values() قدروں کے لحاظ سے ترتیب دیتا ہے:
In [23]: df.sort_values(by="B")
Out[23]:
A B C D
2013-01-03 -0.861849 -2.104569 -0.494929 1.071804
2013-01-04 0.721555 -0.706771 -1.039575 0.271860
2013-01-01 0.469112 -0.282863 -1.509059 -1.135632
2013-01-02 1.212112 -0.173215 0.119209 -1.044236
2013-01-06 -0.673690 0.113648 -1.478427 0.524988
2013-01-05 -0.424972 0.567020 0.276232 -1.087401
Comments
Post a Comment