Menu
CoddyTech

Hợp nhất và nối

Bài học 17 trên 19 trong khóa học Phân tích dữ liệu với pandas của Coddy.

Trong thực tế, dữ liệu thường đến từ nhiều bảng hoặc tệp. Để kết nối và phân tích dữ liệu này, chúng ta cần có khả năng kết hợp các bộ dữ liệu. Để kết hợp các dataframe, ta có thể dùng .merge(), .join() và .concat().

.merge() tương tự thao tác JOIN trong SQL, kết nối các cột hoặc chỉ số trong dataframe dựa trên một hoặc nhiều khóa:

merged_df = df1.merge(df2, on='common_column')

Ví dụ, hai bảng sau:

IDVALUE
1"val1"
2"val2"
IDPOINTS
19

Sẽ trở thành:

IDVALUEPOINTS
1"val1"9

Hàm .concat() dùng để thêm các hàng của một dataframe vào cuối dataframe khác, rồi trả về một dataframe mới. Thao tác này tương tự thao tác 'UNION' trong SQL:

concatenated_df = pd.concat([df1, df2])
challenge icon

Thử thách

Dễ

Tệp CSV visits.csv chứa thông tin về số lượt ghé thăm một địa điểm cụ thể vào một thời điểm cụ thể.

Đây là 5 dòng đầu tiên của tệp:

location_id,visits,timestamp
8,1771,27498
9,4187,79919
0,4959,54228
6,7721,41588

Tính min, max, mean, std, sum và median cho mỗi location id, rồi gộp chúng vào một dataframe. Đổi tên các cột thành:

sum_visits, min_visits, max_visits, mean_visits, std_visits và median_visits.

Dataframe cuối cùng sẽ có dạng như sau:

location_idsum_visitsmin_visitsmax_visitsmean_visitsstd_visitsmedian_visits
.....................

Lưu kết quả vào df.

Tự làm thử

# pandas đã được nhập với tên pd
df = pd.read_csv("./visits.csv")
sum_visits = df.groupby("location_id").sum()
min_visits = df.groupby("location_id").min()
max_visits = df.groupby("location_id").max()
mean_visits = df.groupby("location_id").mean()
std_visits = df.groupby("location_id").std()
median_visits = df.groupby("location_id").median()
# Viết code của bạn bên dưới

Tất cả bài học trong Phân tích dữ liệu với pandas

Tự luyện tập: Trình biên dịch Python online