Hướng dẫn bảng trong python

Create table

Trong bài này, chúng ta sẽ tạo ra một bảng MySQL mới có tên là Employee. Chúng ta có thể tạo bảng mới bằng cách sử dụng câu lệnh CREATE TABLE của SQL. Bảng Empoyee sẽ có bốn cột bao gồm name, id, salary và department_id.

Câu lệnh SQL sau được sử dụng để tạo bảng Employee:

create table Employee [
    name varchar[20] not null, 
    id int primary key, 
    salary float not null, 
    dept_Id int not null
]

Ví dụ:

import mysql.connector

# tạo đối tượng connection
myconn = mysql.connector.connect[host = "localhost", user = "root",
        passwd = "1234567890", database = "PythonDB"]
  
# tạo đối tượng cursor
cur = myconn.cursor[]  
  
try:
    # tạo bảng Employee gồm 4 cột name, id, salary, và department id  
    dbs = cur.execute["create table Employee[name varchar[20] not null, "
        + "id int[20] not null primary key, salary float not null, "
        + "dept_id int not null]"]
except:
    myconn.rollback[]

myconn.close[]

Kết quả:


Alter table

Đôi khi, chúng ta có thể quên tạo một số cột hoặc chúng tôi có thể cần cập nhật table schema. Câu lệnh ALTER được sử dụng trong trường hợp này. Ở đây, chúng ta sẽ thêm cột tên_bảng vào bảng Employee như sau.

alter table Employee 
add branch_name varchar[20] not null

Ví dụ:

import mysql.connector

# tạo đối tượng connection
myconn = mysql.connector.connect[host = "localhost", user = "root",
        passwd = "1234567890", database = "PythonDB"]
  
# tạo đối tượng cursor
cur = myconn.cursor[]  
  
try:
    # thêm cột branch name vào bảng Employee
    cur.execute["alter table Employee add branch_name varchar[20] not null"]
except:
    myconn.rollback[]

myconn.close[]

Kết quả:

pandas là gì

pandas là bộ công cụ để phân tích và chỉnh sửa dữ liệu mạnh nhất thế giới, được sử dụng rộng rãi trong phân tích tài chính, phân tích dữ liệu.

Python pandas

pandas là một Python package.

[trong virtualenv]:

$ pip install pandas
...
Installing collected packages: pandas
Successfully installed pandas-0.19.2

NOTE: pandas phụ thuộc vào package numpy,  tức cài xong pandas thì đã có cả pandas lẫn numpy.

Muốn phân tích thì phải có dữ liệu và hiển thị nó lên bảng thành hàng cột đã rồi làm gì thì làm.
Trong bài đầu tiên của series, ta sẽ sử dụng pandas để tạo một bảng dữ liệu có hàng, cột, giống như Excel hay Google spreadsheet.

Kiểu dữ liệu trong pandas

pandas có hai kiểu dữ liệu chủ chốt
- Series: kiểu dữ liệu một chiều [1D] - chuỗi các giá trị
- DataFrame: kiểu dữ liệu hai chiều [2D] - tức sẽ biểu diễn thành bảng , có hàng / cột trên Excel hay Google spreadsheet.
Code trong bài được viết trên IPython.

Tạo chuỗi dữ liệu với Pandas

Tạo một Series 5 ngày liên tiếp từ ngày 26 tháng 12 năm 2016, dùng function có sẵn "date_range":

In [23]: import pandas as pd

In [33]: dates = pd.date_range['20161226', periods=6]

In [34]: type[dates]
Out[34]: pandas.tseries.index.DatetimeIndex

In [35]: dates
Out[35]:
DatetimeIndex[['2016-12-26', '2016-12-27', '2016-12-28', '2016-12-29',
               '2016-12-30', '2016-12-31'],
              dtype='datetime64[ns]', freq='D']

Các ngày này sẽ được dùng làm một trục của dữ liệu [cụ thể là tên hàng].

Ta cũng có thể tạo Pandas Series từ một list:

In [53]: pd.Series[[6,9,1]]
Out[53]:
0    6
1    9
2    1
dtype: int64

Tạo bảng dữ liệu với pandas

Để tạo một DataFrame [khi hiển thị giống một bảng], sẽ cần:
- các giá trị số làm dữ liệu trong bảng
- tên các hàng [index]
- tên các cột [column].

Ta sẽ tạo ra một bảng dữ liệu [matrix] có kích thước 6x4 [6 hàng 4 cột], với tên cột là các chữ cái ABCD, tên hàng lần lượt là các ngày đã lưu trong Series ``dates``:

In [36]: df = pd.DataFrame[np.random.randn[6,4], index=dates, columns=list['ABCD']]

In [37]: df
Out[37]:
                   A         B         C         D
2016-12-26  0.043417  0.620126  0.012686 -0.080664
2016-12-27  1.411180  2.400210 -0.647863  0.822057
2016-12-28  0.675524 -0.737174 -0.659257 -1.296264
2016-12-29  1.821968  0.357839 -0.353152  0.865027
2016-12-30  0.561878  0.001481  1.318802  0.728757
2016-12-31 -2.190918  0.316874  0.440114 -0.144588

np.random.randn[6,4] là function của ``numpy`` dùng để sinh bảng dữ liệu ngẫu nhiên với kích thước 6x4.

Ta có thể tạo một bảng dữ liệu đơn giản khác mà không cần dùng đến numpy:

In [52]: pd.DataFrame[[[1,2,3], [1,2,3], [1,2,3]] , index=[1,2,3], columns=list['XYZ']]
Out[52]:
   X  Y  Z
1  1  2  3
2  1  2  3
3  1  2  3

Hết.

Happy creating-table!!!

Tham khảo: //pandas.pydata.org/pandas-docs/stable/10min.html

HVN at //www.familug.org/ and //pymi.vn

Chủ Đề