Tutorial sa Python Pandas: DataFrame, Saklaw ng Petsa, Paggamit ng Pandas

Ano ang Pandas Python?

Pandas ay isang open-source library na nagbibigay-daan sa iyo upang maisagawa ang pagmamanipula ng data at pagtatasa sa Python. Nag-aalok ang silid aklatan ng Pandas Python ng pagmamanipula ng data at mga pagpapatakbo ng data para sa mga numerong talahanayan at serye ng oras. Ang mga panda ay nagbibigay ng isang madaling paraan upang likhain, manipulahin, at palitan ang data. Ito ay itinayo sa tuktok ng NumPy, nangangahulugang kailangan nito ang NumPy upang gumana.

Sa tutorial na Python Pandas na ito, matututunan mo ang mga pangunahing kaalaman sa Pandas Python tulad ng:

Bakit gumagamit ng Pandas?

Ginagamit ng mga siyentipiko ng data ang Pandas sa Python para sa mga sumusunod na kalamangan:

  • Madaling hawakan ang nawawalang data
  • Ito ay gumagamit ng Serye para sa isang-dimensional na istraktura ng data at DataFrame para sa multi-dimensional na istraktura ng data
  • Nagbibigay ito ng isang mahusay na paraan upang hatiin ang data
  • Nagbibigay ito ng isang nababaluktot na paraan upang pagsamahin, pagsamahin o ibahin ang anyo ang data
  • Nagsasama ito ng isang malakas na tool sa serye ng oras upang gumana

Sa madaling sabi, ang Pandas ay isang kapaki-pakinabang na aklatan sa pagsusuri sa datos . Maaari itong magamit upang maisagawa ang pagmamanipula at pagtatasa ng data. Ang mga pandas ay nagbibigay ng malakas at madaling gamiting mga istraktura ng data, pati na rin ang mga paraan upang mabilis na maisagawa ang mga operasyon sa mga istrukturang ito.

Paano Mag-install ng Pandas?

Ngayon sa tutorial na ito ng Python Pandas, matututunan natin kung paano i-install ang Pandas sa Python.

Upang mai-install ang Pandas library, mangyaring mag-refer sa aming tutorial Paano i-install ang TensorFlow . Ang Pandas ay na-install bilang default. Sa malayuang kaso, hindi naka-install ang mga panda-

Maaari mong i-install ang Pandas gamit ang:

  • Anaconda: pag-install ng conda -c anaconda pandas
  • Sa Jupyter Notebook:
import sys !conda install --yes --prefix {sys.prefix} pandas 

Ano ang isang Pandas DataFrame?

Pandas DataFrame ay isang dalawang-dimensional na array na may label na istraktura ng data na may iba't ibang mga uri ng haligi. Ang isang DataFrame ay isang karaniwang paraan upang mag-imbak ng data sa isang format na tabular, na may mga hilera upang maiimbak ang impormasyon at mga haligi upang pangalanan ang impormasyon. Halimbawa, ang presyo ay maaaring maging pangalan ng isang haligi at 2,3,4 ay maaaring ang mga halaga ng presyo.

Ang Data Frame ay kilalang kilala ng statistician at iba pang mga nagsasanay ng data.

Sa ibaba ng larawan ng isang frame ng data ng Pandas:

Ano ang isang Serye?

Ang isang serye ay isang isang-dimensional na istraktura ng data. Maaari itong magkaroon ng anumang istraktura ng data tulad ng integer, float, at string. Ito ay kapaki-pakinabang kapag nais mong magsagawa ng pagkalkula o bumalik ng isang isang-dimensional na array. Ang isang serye, sa pamamagitan ng kahulugan, ay hindi maaaring magkaroon ng maraming mga haligi. Para sa huling kaso, mangyaring gamitin ang istraktura ng frame ng data.

Ang mga Python Pandas Series ay may mga sumusunod na parameter:

  • Data: maaaring isang listahan, diksyunaryo o halaga ng scalar
pd.Series([1., 2., 3.]) 
 0 1.0 1 2.0 2 3.0 dtype: float64 

Maaari kang magdagdag ng index na may index. Nakatutulong itong pangalanan ang mga hilera. Ang haba ay dapat na katumbas ng laki ng haligi

pd.Series([1., 2., 3.], index=['a', 'b', 'c'])

Sa ibaba, lumikha ka ng isang serye ng Pandas na may nawawalang halaga para sa pangatlong hilera. Tandaan, nawawalang mga halaga sa Sawa ay nabanggit na 'NaN.' Maaari mong gamitin ang numpy upang lumikha ng nawawalang halaga: np.nan artipisyal

pd.Series([1,2,np.nan])

Output

 0 1.0 1 2.0 2 NaN dtype: float64 

Lumikha ng Pandas DataFrame

Ngayon sa tutorial na Pandas DataFrame na ito, matututunan namin kung paano lumikha ng dataframe ng Python Pandas:

Maaari mong i-convert ang isang numpy array sa isang frame ng data ng pandas na may pd.Data frame (). Posible rin ang kabaligtaran. Upang mai-convert ang isang pandas Data Frame sa isang array, maaari mong gamitin ang np.array ()

 ## Numpy to pandas import numpy as np h = [[1,2],[3,4]] df_h = pd.DataFrame(h) print('Data Frame:', df_h) ## Pandas to numpy df_h_n = np.array(df_h) print('Numpy array:', df_h_n) Data Frame: 0 1 0 1 2 1 3 4 Numpy array: [[1 2] [3 4]] 

Maaari mo ring gamitin ang isang diksyunaryo upang lumikha ng isang dataframe ng Pandas.

dic = {'Name': ['John', 'Smith'], 'Age': [30, 40]} pd.DataFrame(data=dic) 
Edad Pangalan
0 30John
1 40Smith

Data ng Saklaw ng Pandas

Ang mga Pandas ay mayroong isang maginhawang API upang lumikha ng isang hanay ng petsa. Alamin natin sa mga halimbawa ng Python Pandas:

pd.data_range (petsa, panahon, dalas):

  • Ang unang parameter ay ang petsa ng pagsisimula
  • Ang pangalawang parameter ay ang bilang ng mga panahon (opsyonal kung ang petsa ng pagtatapos ay tinukoy)
  • Ang huling parameter ay ang dalas: araw: 'D,' buwan: 'M' at taon: 'Y.'
 ## Create date # Days dates_d = pd.date_range('20300101', periods=6, freq='D') print('Day:', dates_d) 

Paglabas

 Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D') 
 # Months dates_m = pd.date_range('20300101', periods=6, freq='M') print('Month:', dates_m) 

Paglabas

 Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M') 

Sinusuri ang Data

Maaari mong suriin ang ulo o buntot ng dataset na may ulo (), o buntot () na naunahan ng pangalan ng data frame ng panda tulad ng ipinakita sa halimbawa ng Pandas sa ibaba:

Hakbang 1) Lumikha ng isang random na pagkakasunud-sunod sa numpy. Ang pagkakasunud-sunod ay may 4 na haligi at 6 na hilera

random = np.random.randn(6,4) 

Hakbang 2) Pagkatapos ay lumikha ka ng isang data frame gamit ang pandas.

Gumamit ng mga date_m bilang isang index para sa frame ng data. Nangangahulugan ito na ang bawat hilera ay bibigyan ng isang 'pangalan' o isang index, na tumutugma sa isang petsa.

Panghuli, bibigyan mo ng isang pangalan ang 4 na mga haligi na may mga haligi ng argument

 # Create data with date df = pd.DataFrame(random, index=dates_m, columns=list('ABCD')) 

Hakbang 3) Gamit ang pagpapaandar ng ulo

df.head(3)
SA B C D
2030-01-31 1.1394331.318510-0.1813341.615822
2030-02-28 -0.081995-0.0635820.857751-0.527374
2030-03-31 -0.5191790.080984-1.4543341.314947

Hakbang 4) Paggamit ng pagpapaandar ng buntot

df.tail(3)
SA B C D
2030-04-30 -0.685448-0.0117360.6221720.104993
2030-05-31 -0.935888-0.731787-0.5587290.768774
2030-06-30 1.0969810.949180-0.196901-0.471556

Hakbang 5) Isang mahusay na kasanayan upang makakuha ng isang pahiwatig tungkol sa data ay ang paggamit ng paglalarawan (). Nagbibigay ito ng mga bilang, ibig sabihin, std, min, max at porsyento ng dataset.

df.describe()
SA B C D
bilangin 6.0000006.0000006.0000006.000000
ibig sabihin 0.0023170.256928-0.1518960.467601
oras 0.9081450.7469390.8346640.908910
min -0.935888-0.731787-1.454334-0.527374
25% -0.643880-0.050621-0.468272-0.327419
limampung% -0.3005870.034624-0.1891180.436883
75% 0.8022370.7321310.4212961,178404
max 1.1394331.3185100.8577511.615822

Slice Data

Ang huling punto ng tutorial na ito ng Python Pandas ay tungkol sa kung paano maghiwa ng isang frame ng data ng pandas.

Maaari mong gamitin ang pangalan ng haligi upang kumuha ng data sa isang partikular na haligi tulad ng ipinakita sa halimbawa ng Pandas sa ibaba:

 ## Slice ### Using name df['A'] 2030-01-31 -0.168655 2030-02-28 0.689585 2030-03-31 0.767534 2030-04-30 0.557299 2030-05-31 -1.547836 2030-06-30 0.511551 Freq: M, Name: A, dtype: float64 

Upang pumili ng maraming mga haligi, kailangan mong gumamit ng dalawang beses sa bracket, [[.., ..]]

Ang unang pares ng bracket ay nangangahulugang nais mong pumili ng mga haligi, ang pangalawang pares ng bracket ay nagsasabi kung anong mga haligi ang nais mong ibalik.

df[['A', 'B']]. 
SA B
2030-01-31 -0.1686550.587590
2030-02-28 0.6895850.998266
2030-03-31 0.767534-0.940617
2030-04-30 0.5572990.507350
2030-05-31 -1.5478361.276558
2030-06-30 0.5115511.572085

Maaari mong hiwain ang mga hilera sa:

Ibinabalik ng code sa ibaba ang unang tatlong mga hilera

### using a slice for row df[0:3] 
SA B C D
2030-01-31 -0.1686550.5875900.572301-0.031827
2030-02-28 0.6895850.9982661.1646900.475975
2030-03-31 0.767534-0.9406170.227255-0.341532

Ginagamit ang pagpapaandar ng loc upang pumili ng mga haligi ayon sa mga pangalan. Tulad ng dati, ang mga halaga bago ang coma ay tumayo para sa mga hilera at pagkatapos ay sumangguni sa haligi. Kailangan mong gamitin ang mga braket upang pumili ng higit sa isang haligi.

## Multi col df.loc[:,['A','B']] 
SA B
2030-01-31 -0.1686550.587590
2030-02-28 0.6895850.998266
2030-03-31 0.767534-0.940617
2030-04-30 0.5572990.507350
2030-05-31 -1.5478361.276558
2030-06-30 0.5115511.572085

May isa pang pamamaraan upang pumili ng maraming mga hilera at haligi sa Pandas. Maaari mong gamitin ang iloc []. Ginagamit ng pamamaraang ito ang index sa halip na ang mga pangalan ng mga haligi. Ang code sa ibaba ay nagbabalik ng parehong frame ng data tulad ng sa itaas

df.iloc[:, :2]
SA B
2030-01-31 -0.1686550.587590
2030-02-28 0.6895850.998266
2030-03-31 0.767534-0.940617
2030-04-30 0.5572990.507350
2030-05-31 -1.5478361.276558
2030-06-30 0.5115511.572085

Mag-drop ng isang Column

Maaari kang mag-drop ng mga haligi gamit ang pd.drop ()

df.drop(columns=['A', 'C']) 
B D
2030-01-31 0.587590-0.031827
2030-02-28 0.9982660.475975
2030-03-31 -0.940617-0.341532
2030-04-30 0.507350-0.296035
2030-05-31 1.2765580.523017
2030-06-30 1.572085-0.594772

Pagtatapos

Maaari mong pagsamahin ang dalawang DataFrame sa Pandas. Maaari mong gamitin ang pd.concat ()

Una sa lahat, kailangan mong lumikha ng dalawang DataFrames. Sa ngayon napakahusay, pamilyar ka na sa paglikha ng dataframe

 import numpy as np df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'], 'Age': ['25', '30', '50']}, index=[0, 1, 2]) df2 = pd.DataFrame({'name': ['Adam', 'Smith' ], 'Age': ['26', '11']}, index=[3, 4]) 

Sa wakas, pinagsama mo ang dalawang DataFrame

df_concat = pd.concat([df1,df2]) df_concat
Edad pangalan
0 25John
1 30Smith
2 limampuPaul
3 26Si Adan
4 labing-isangSmith

Drop_duplicates

Kung ang isang dataset ay maaaring maglaman ng paggamit ng mga duplicate na impormasyon, ang `drop_duplicates` ay isang madaling ibukod ang mga dobleng hilera. Maaari mong makita na ang `df_concat` ay may isang duplicate na pagmamasid, lumilitaw ang` Smith` ng dalawang beses sa haligi ng `pangalan .`

df_concat.drop_duplicates('name')
Edad pangalan
0 25John
1 30Smith
2 limampuPaul
3 26Si Adan

Pagsunud-sunurin ang mga halaga

Maaari mong pag-uri-uriin ang halaga sa mga sort_values ​​

df_concat.sort_values('Age')
Edad pangalan
4 labing-isangSmith
0 25John
3 26Si Adan
1 30Smith
2 limampuPaul

Palitan ang pangalan: pagbabago ng index

Maaari mong gamitin ang palitan ang pangalan upang palitan ang pangalan ng isang haligi sa Pandas. Ang unang halaga ay ang kasalukuyang pangalan ng haligi at ang pangalawang halaga ay ang bagong pangalan ng haligi.

df_concat.rename(columns={'name': 'Surname', 'Age': 'Age_ppl'})
Age_ppl Apelyido
0 25John
1 30Smith
2 limampuPaul
3 26Si Adan
4 labing-isangSmith

Buod

Nasa ibaba ang isang buod ng pinaka kapaki-pakinabang na pamamaraan para sa data science sa Pandas

mag-import ng dataread_csv
lumikha ng seryeSerye
Lumikha ng DataframeBalangkas ng mga datos
Lumikha ng saklaw ng petsadate_range
bumalik uloulo
ibalik ang buntotbuntot
Ilarawannaglalarawan
hiwa gamit ang pangalandataname ['columnname']
Hatiin gamit ang mga hileradata_name [0: 5]