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, additionvà deletion 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.