Gấu trúc Python - DataFrame

Khung dữ liệu là một cấu trúc dữ liệu hai chiều, tức là dữ liệu được căn chỉnh theo kiểu bảng trong các hàng và cột.

Các tính năng của DataFrame

  • Các cột tiềm năng có nhiều loại khác nhau
  • Kích thước - Có thể thay đổi
  • Các trục được gắn nhãn (hàng và cột)
  • Có thể thực hiện các phép toán số học trên các hàng và cột

Kết cấu

Giả sử rằng chúng ta đang tạo một khung dữ liệu với dữ liệu của học sinh.

Bạn có thể coi nó như một bảng SQL hoặc một biểu diễn dữ liệu bảng tính.

gấu trúc.DataFrame

Một DataFrame gấu trúc có thể được tạo bằng cách sử dụng hàm tạo sau:

pandas.DataFrame( data, index, columns, dtype, copy)

Các tham số của hàm tạo như sau:

Sr.No Mô tả về Thông Số
1

data

dữ liệu có nhiều dạng khác nhau như ndarray, chuỗi, bản đồ, danh sách, dict, hằng số và cả một DataFrame khác.

2

index

Đối với các nhãn hàng, Chỉ mục được sử dụng cho khung kết quả là Mặc định Tùy chọn np.arange (n) nếu không có chỉ mục nào được chuyển qua.

3

columns

Đối với nhãn cột, cú pháp mặc định tùy chọn là - np.arange (n). Điều này chỉ đúng nếu không có chỉ mục nào được thông qua.

4

dtype

Kiểu dữ liệu của mỗi cột.

5

copy

Lệnh này (hoặc bất kỳ lệnh nào) được sử dụng để sao chép dữ liệu, nếu giá trị mặc định là Sai.

Tạo DataFrame

Một DataFrame gấu trúc có thể được tạo bằng cách sử dụng các đầu vào khác nhau như -

  • Lists
  • dict
  • Series
  • Numpy ndarrays
  • DataFrame khác

Trong các phần tiếp theo của chương này, chúng ta sẽ xem cách tạo DataFrame bằng cách sử dụng các đầu vào này.

Tạo một DataFrame trống

Một DataFrame cơ bản, có thể được tạo là một Dataframe rỗng.

Thí dụ

#import the pandas library and aliasing as pd
import pandas as pd
df = pd.DataFrame()
print df

Nó là output như sau -

Empty DataFrame
Columns: []
Index: []

Tạo DataFrame từ Danh sách

DataFrame có thể được tạo bằng cách sử dụng một danh sách hoặc một danh sách.

ví dụ 1

import pandas as pd
data = [1,2,3,4,5]
df = pd.DataFrame(data)
print df

Nó là output như sau -

0
0    1
1    2
2    3
3    4
4    5

Ví dụ 2

import pandas as pd
data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'])
print df

Nó là output như sau -

Name      Age
0     Alex      10
1     Bob       12
2     Clarke    13

Ví dụ 3

import pandas as pd
data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'],dtype=float)
print df

Nó là output như sau -

Name     Age
0     Alex     10.0
1     Bob      12.0
2     Clarke   13.0

Note - Quan sát, dtype tham số thay đổi loại cột Tuổi thành dấu phẩy động.

Tạo DataFrame từ Dict of ndarrays / Lists

Tất cả ndarraysphải có cùng độ dài. Nếu chỉ mục được thông qua, thì độ dài của chỉ mục phải bằng độ dài của mảng.

Nếu không có chỉ mục nào được chuyển, thì theo mặc định, chỉ mục sẽ là range (n), trong đó n là độ dài mảng.

ví dụ 1

import pandas as pd
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df = pd.DataFrame(data)
print df

Nó là output như sau -

Age      Name
0     28        Tom
1     34       Jack
2     29      Steve
3     42      Ricky

Note- Quan sát các giá trị 0,1,2,3. Chúng là chỉ mục mặc định được chỉ định cho mỗi bằng cách sử dụng phạm vi hàm (n).

Ví dụ 2

Bây giờ chúng ta hãy tạo một DataFrame được lập chỉ mục bằng cách sử dụng các mảng.

import pandas as pd
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df = pd.DataFrame(data, index=['rank1','rank2','rank3','rank4'])
print df

Nó là output như sau -

Age    Name
rank1    28      Tom
rank2    34     Jack
rank3    29    Steve
rank4    42    Ricky

Note - Quan sát, index tham số chỉ định một chỉ mục cho mỗi hàng.

Tạo một DataFrame từ Danh sách các Hành vi

Danh sách Từ điển có thể được chuyển làm dữ liệu đầu vào để tạo DataFrame. Các khóa từ điển theo mặc định được lấy làm tên cột.

ví dụ 1

Ví dụ sau đây cho thấy cách tạo DataFrame bằng cách chuyển một danh sách các từ điển.

import pandas as pd
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)
print df

Nó là output như sau -

a    b      c
0   1   2     NaN
1   5   10   20.0

Note - Hãy quan sát, NaN (Không phải là Số) được thêm vào ở những vùng bị thiếu.

Ví dụ 2

Ví dụ sau đây cho thấy cách tạo DataFrame bằng cách chuyển một danh sách các từ điển và chỉ mục hàng.

import pandas as pd
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data, index=['first', 'second'])
print df

Nó là output như sau -

a   b       c
first   1   2     NaN
second  5   10   20.0

Ví dụ 3

Ví dụ sau đây cho thấy cách tạo DataFrame với danh sách các từ điển, chỉ mục hàng và chỉ mục cột.

import pandas as pd
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]

#With two column indices, values same as dictionary keys
df1 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b'])

#With two column indices with one index with other name
df2 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b1'])
print df1
print df2

Nó là output như sau -

#df1 output
         a  b
first    1  2
second   5  10

#df2 output
         a  b1
first    1  NaN
second   5  NaN

Note- Quan sát, df2 DataFrame được tạo chỉ mục cột khác với khóa từ điển; do đó, đã nối NaN's tại chỗ. Trong khi đó, df1 được tạo với các chỉ mục cột giống như khóa từ điển, vì vậy NaN được thêm vào.

Tạo DataFrame từ Dict of Series

Dictionary of Series có thể được chuyển để tạo thành DataFrame. Chỉ mục kết quả là sự kết hợp của tất cả các chỉ mục chuỗi được chuyển qua.

Thí dụ

import pandas as pd

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
   'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(d)
print df

Nó là output như sau -

one    two
a     1.0    1
b     2.0    2
c     3.0    3
d     NaN    4

Note - Quan sát, đối với bộ truyện một, không có nhãn ‘d’ đã vượt qua, nhưng kết quả là d nhãn, NaN được nối với NaN.

Hãy để chúng tôi hiểu column selection, additiondeletion thông qua các ví dụ.

Lựa chọn cột

Chúng tôi sẽ hiểu điều này bằng cách chọn một cột từ DataFrame.

Thí dụ

import pandas as pd

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
   'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(d)
print df ['one']

Nó là output như sau -

a     1.0
b     2.0
c     3.0
d     NaN
Name: one, dtype: float64

Bổ sung cột

Chúng tôi sẽ hiểu điều này bằng cách thêm một cột mới vào khung dữ liệu hiện có.

Thí dụ

import pandas as pd

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
   'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(d)

# Adding a new column to an existing DataFrame object with column label by passing new series

print ("Adding a new column by passing as Series:")
df['three']=pd.Series([10,20,30],index=['a','b','c'])
print df

print ("Adding a new column using the existing columns in DataFrame:")
df['four']=df['one']+df['three']

print df

Nó là output như sau -

Adding a new column by passing as Series:
     one   two   three
a    1.0    1    10.0
b    2.0    2    20.0
c    3.0    3    30.0
d    NaN    4    NaN

Adding a new column using the existing columns in DataFrame:
      one   two   three    four
a     1.0    1    10.0     11.0
b     2.0    2    20.0     22.0
c     3.0    3    30.0     33.0
d     NaN    4     NaN     NaN

Xóa cột

Các cột có thể bị xóa hoặc xuất hiện; hãy để chúng tôi lấy một ví dụ để hiểu làm thế nào.

Thí dụ

# Using the previous DataFrame, we will delete a column
# using del function
import pandas as pd

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 
   'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']), 
   'three' : pd.Series([10,20,30], index=['a','b','c'])}

df = pd.DataFrame(d)
print ("Our dataframe is:")
print df

# using del function
print ("Deleting the first column using DEL function:")
del df['one']
print df

# using pop function
print ("Deleting another column using POP function:")
df.pop('two')
print df

Nó là output như sau -

Our dataframe is:
      one   three  two
a     1.0    10.0   1
b     2.0    20.0   2
c     3.0    30.0   3
d     NaN     NaN   4

Deleting the first column using DEL function:
      three    two
a     10.0     1
b     20.0     2
c     30.0     3
d     NaN      4

Deleting another column using POP function:
   three
a  10.0
b  20.0
c  30.0
d  NaN

Chọn hàng, bổ sung và xóa

Bây giờ chúng ta sẽ hiểu việc chọn, thêm và xóa hàng thông qua các ví dụ. Chúng ta hãy bắt đầu với khái niệm lựa chọn.

Lựa chọn theo nhãn

Hàng có thể được chọn bằng cách chuyển nhãn hàng cho một loc chức năng.

import pandas as pd

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 
   'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(d)
print df.loc['b']

Nó là output như sau -

one 2.0
two 2.0
Name: b, dtype: float64

Kết quả là một chuỗi có nhãn là tên cột của DataFrame. Và, Tên của chuỗi là nhãn mà nó được truy xuất.

Lựa chọn theo vị trí số nguyên

Các hàng có thể được chọn bằng cách chuyển vị trí số nguyên đến một iloc chức năng.

import pandas as pd

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
   'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(d)
print df.iloc[2]

Nó là output như sau -

one   3.0
two   3.0
Name: c, dtype: float64

Hàng lát

Có thể chọn nhiều hàng bằng toán tử ':'.

import pandas as pd

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 
   'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(d)
print df[2:4]

Nó là output như sau -

one  two
c  3.0    3
d  NaN    4

Bổ sung hàng

Thêm hàng mới vào DataFrame bằng cách sử dụng appendchức năng. Hàm này sẽ nối các hàng ở cuối.

import pandas as pd

df = pd.DataFrame([[1, 2], [3, 4]], columns = ['a','b'])
df2 = pd.DataFrame([[5, 6], [7, 8]], columns = ['a','b'])

df = df.append(df2)
print df

Nó là output như sau -

a  b
0  1  2
1  3  4
0  5  6
1  7  8

Xóa hàng

Sử dụng nhãn chỉ mục để xóa hoặc bỏ hàng khỏi DataFrame. Nếu nhãn bị trùng lặp, thì nhiều hàng sẽ bị loại bỏ.

Nếu bạn quan sát, trong ví dụ trên, các nhãn bị trùng lặp. Hãy để chúng tôi thả một nhãn và sẽ xem có bao nhiêu hàng sẽ bị loại bỏ.

import pandas as pd

df = pd.DataFrame([[1, 2], [3, 4]], columns = ['a','b'])
df2 = pd.DataFrame([[5, 6], [7, 8]], columns = ['a','b'])

df = df.append(df2)

# Drop rows with label 0
df = df.drop(0)

print df

Nó là output như sau -

a b
1 3 4
1 7 8

Trong ví dụ trên, hai hàng đã bị loại bỏ vì hai hàng đó chứa cùng nhãn 0.