Nếu bạn bắt đầu tìm hiểu và làm việc dữ liệu dạng bảng trong Python, thì nhiều khả năng bạn sẽ bắt đầu với thư viện tên là Pandas, bởi vì Pandas là một thư viện giúp bạn làm việc với dữ liệu rất thuận tiện và hiệu quả, nhiều công việc xử lý dữ liệu bạn sẽ mất công viết ra rất nhiều code trong các công cụ khác, nhưng với Pandas, bạn chỉ cần viết 1 dòng.
Bài viết này sẽ như một bảng tóm tắt về các đoạn code Pandas hay sử dụng trong việc xử lý dữ liệu với Python để bạn có thể tra cứu nhanh bằng cách tìm kiếm, hãy bookmark lại bài viết để có thể tiện tra cứu ngay khi cần. Nếu bạn đang tìm kiếm cách để có thể tự động hóa Excel từ Python, hãy tham khảo khóa học Lập trình tương tác Python Excel chìa khóa tối ưu công việc
Xem nhanh
Như đã nói, bạn có thể bookmark lại bài viết này vào trình duyệt yêu thích của bạn, khi cần tìm một đoạn code nào đó, bạn có thể bấm Ctrl + F hoặc ⌘ + F (trên Mac)
Để sử dụng được các đoạn code trong bài này, chúng ta có phần import như sau
import pandas as pd
import numpy as np
và chúng ta có các đối tượng với tên ngắn gọn như sau:
df
– Đối tượng DataFrame trong Pandass
– Đối tượng Series trong PandasCác câu lệnh trong phần này giúp bạn có thể load hay import dữ liệu từ nhiều nguồn và nhiều dạng dữ liệu khác nhau
pd.read_csv(filename)
pd.read_table(filename)
pd.read_excel(filename)
pd.read_sql(query, connection_object)
pd.read_json(json_string)
pd.read_html(url)
pd.read_clipboard()
Nội dung của Clipboard sẽ được chuyển tới read_table()
pd.DataFrame(dict)
Trong phần này, chúng ta sẽ tổng hợp một số cách xuất dữ liệu từ Pandas DataFrame ra một số nguồn thông dụng
df.to_csv(filename)
df.to_excel(filename)
df.to_sql(table_name, connection_object)
df.to_json(filename)
Những dòng code trong phần này sẽ giúp bạn tạo ra dữ liệu test với sự giúp đỡ của thư viện Numpy
Đoạn code này sẽ tạo ra một bảng gồm 23 dòng và 4 cột, được điền vào những giá trị ngẫu nhiên từ Numpy
pd.DataFrame(np.random.rand(23,4))
pd.Series(my_list)
df.index = pd.date_range(
'1999/1/31',
periods=df.shape[0])
Những câu lệnh trong phần này sẽ giúp bạn kiểm tra DataFrame hoặc Series trong Panda theo một vị trí cụ thể.
df.head(n)
df.tail(n)
df.shape
df.shape
df.info()
df.describe()
Lưu ý Áp dụng cho đối tượng Series
s.value_counts(dropna=False)
df.apply(pd.Series.value_counts)
Những câu lệnh trong phần này sẽ giúp bạn trích xuất dữ liệu từ DataFrame hoặc Series trong Pandas
Trả về cột có label là col như một Series
df[col]
df[[Col1, Col2]]
s.iloc[0]
s.loc['index_one']
df.iloc[0,:]
df.iloc[0,0]
Các đoạn code trong phần này sẽ giúp bạn xử lý và làm sạch dữ liệu
df.columns = ['a','b','c']
pd.isnull()
pd.notnull()
df.dropna()
df.dropna(axis=1)
df.dropna(axis=1, thresh=n)
df.fillna(x)
Thay giá trị null trong Series bởi giá trị mean của các giá trị trong Series (mean có thể thay được bởi các hàm khác trong module statistics của Python)
s.fillna(s.mean())
s.astype(float)
Thay tất cả các giá trị bằng 1
bởi one
s.replace(1,'one')
s.replace([1,3],['one','three'])
df.rename(columns=lambda x: x + 1)
df.rename(columns={'old_name': 'new_ name'})
df.set_index('column_one')
df.rename(index=lambda x: x + 1)
Các câu lệnh trong phần này sẽ giúp bạn thực hiện các thao tác lọc, sắp xếp hay nhóm dữ liệu trong DataFrame một cách dễ dàng
Lọc ra các dòng thỏa mãn điều kiện col
lớn hơn 5
df[ df[col] > 5 ]
Lọc ra các dòng thỏa mãn điều kiện: có giá trị cột col
trong khoảng 100
đến 200
df[ df[col] > 100 & df[col] < 200 ]
Sắp xếp dữ liệu trong cột col1
theo chiều thuận (ascending)
df.sort_values(col1)
Sắp xếp dữ liệu trong cột col2
theo chiều nghịch (descending)
df.sort_values(col2, ascending=False)
Sắp xếp col1
theo chiều thuận và col2
theo chiều nghịch
df.sort_values([col1,col2],ascending=[True,False])
Pivot dữ liệu theo col1
df.groupby(col1)
Pivot dữ liệu theo nhiều cột col1
, col2
Tạo một Pivot Table, nhóm dữ liệu theo cột col1
, tính mean của col2
, col3
df.pivot_table(index=col1,values=[col2,col3],aggfunc=mean)
df.apply(np.mean)
Áp dụng hàm np.max() cho mỗi dòng dữ liệu
df.apply(np.max,axis=1)
Nối các dòng của df1
xuống dưới df2
(Số lượng các cột trong 2 DataFrames này phải giống nhau)
df1.append(df2)
Nối các cột của df1
sang phải các cột của df2
(Số lượng các dòng trong 2 DataFrames này phải giống nhau)
pd.concat([df1, df2],axis=1)
df1.join(df2,on=col1,how='inner')
Join 2 DataFrame df1
và df2
theo cột chung col1
, kiểu Join là 'inner'
. Ngoài ra còn hỗ trợ các kiểu join: 'left'
, 'right'
, 'outer'
df.describe()
df.mean()
df.corr()
df.count()
df.max()
df.min()
df.median()
df.std()
Hi vọng với bài viết này, Thanh sẽ giúp bạn làm việc dễ dàng hơn với DataFrame trong Pandas. Đừng quên tham khảo khóa học Lập trình tương tác Python Excel chìa khóa tối ưu công việc