DỮ LIỆU & CODE:
Github:
(Nếu bạn không biết tải file từ Github thì tải từ drive nhé:
CHƯƠNG TRÌNH TRẢ LỜI CÁC BÀI TOÁN THỰC TẾ CỦA MỘT DOANH NGHIỆP:
– Tháng nào có doanh số tốt nhất? Doanh số tháng đó là bao nhiêu?
– Thành phố nào có doanh số cao nhất?
– Doanh nghiệp cần chiếu quảng cáo vào khung thời gian nào để tăng khả năng mua hàng của khách hàng?
– Những sản phẩm nào thường được bán cùng nhau?
– Sản phẩm nào được bán nhiều nhất? Giả thiết của bạn về lý do sản phẩm này được bán nhiều nhất là gì?
CÓ THỂ BẠN QUAN TÂM:
Lập trình Bot kéo Dữ liệu Người dùng Linkedin (Python & BeautifulSoup):
Lập trình Bot tự động Kết nối & Gửi tin nhắn trên Linkedin (Python & Selenium):
Lập trình Bot Đổi tên & Sắp xếp Files trong máy tính (Python & module OS):
GROUP HỎI ĐÁP:
Group hỏi đáp Python ứng dụng:
Group hỏi đáp Python cơ bản:
TIMESTAMP:
0:17 Giới thiệu Vấn đề
1:14 Demo Chương trình
2:27 Giới thiệu Dữ liệu và Code Editor
3:43 Lên kế hoạch cho chương trình, chia nhỏ vấn đề
4:00 Giới thiệu sự khác biệt giữa Báo cáo dữ liệu và Phân tích dữ liệu
4:36 Task 1: Thiết lập môi trường và Load dữ liệu
4:46 Cài đặt và Import pandas
5:42 Giới thiệu về Dataframe và Series trong pandas
5:59 Tải dữ liệu lên chương trình. Xác định đường dẫn tương đối (relative path) và đường dẫn tuyệt đối (absolute path) đến tập tin
9:03 Task 2: Clean and Preprocess data
9:09 Task 2.1: Tải 12 files dữ liệu lên chương trình. Gộp 12 dataframes lại làm 1
13:11 Task 2.2: Thêm cột “Month” cho dataframes
16:31 Task 2.3: Loại bỏ giá trị “nan” và giá trị “Or”
17:55 Task 3: Reporting & Data Analysis
17:55 Task 3.1: Tháng nào có doanh số tốt nhất? Doanh số tháng đó là bao nhiêu?
22:30 Task 3.2: Thành phố nào có doanh số cao nhất?
27:39 Task 3.3: Doanh nghiệp cần chiếu quảng cáo vào khung thời gian nào để tăng khả năng mua hàng của khách hàng?
31:14 Task 3.4: Những sản phẩm nào thường được bán cùng nhau?
25:18 Task 3.5: Sản phẩm nào được bán nhiều nhất? Giả thiết của bạn về lý do sản phẩm này được bán nhiều nhất là gì?
38:07 Dọn dẹp chương trình và Thêm câu lệnh input ở đầu chương trình để truyền dữ liệu cho lần sử dụng sau
Inspired by:
—
If you are looking to future proof your career, let’s get your hands on our Real-world Coding Problems to start building up your Portfolio. In this series of tutorials, you will get a chance to “live the life” of an industry practitioner to solve real-world problems using Python.
Hello các bạn, có một số chia sẻ thêm về Câu 2 và Câu 4 từ các bạn trong cộng đồng, mình pin lên đây để cùng học hỏi nhé:
————————————————–
CÂU 4: Cách tiếp cận dùng value_counts của mình là không chính xác vì value_counts chỉ đếm các giá trị duy nhất nên sẽ bỏ sót những order mua từ 2 sản phẩm trở lên.
Cách tiếp cận này trên Stackoverflow dùng itertools https://stackoverflow.com/questions/52195887/counting-unique-pairs-of-numbers-into-a-python-dictionary thì chính xác hơn. Các bạn lặp qua df['All Products'], cho sản phẩm của từng đơn hàng vào một list, và dùng itertools cho các list đó. Code như bên dưới bạn nhé:
from itertools import combinations
from collections import Counter
count = Counter()
for products in df_dup['All Products']:
product_list = products.split(",")
count.update(Counter(combinations(product_list, 2)))
print(count)
————————————————–
CÂU 4: Nếu bạn muốn lấy giá trị ra để vẽ có thể dùng hàm .most_common() lên giá trị count
for key, value in count.most_common(10):
print(key, value)
key sẽ trả về cho tên của hàng, còn value là số lượng
————————————————–
CÂU 2: (Chia sẻ từ bạn @Bao Thai Vuong)
Thay vì phải dùng vòng loop thì chỉ cần thay đòng plt.bar(x = sorted(cities), height = sales_value_city) là sẽ khớp giá trị sale với giá trị city vì khi dùng groupby cho cột City để tính giá trị sales của từng thành phố thì kết quả trả về theo thứ tự bảng chữ cái từ A-Z, nên dùng sorted cho tên thành phố cũng sẽ trả về giá trị theo thứ tự A-Z, tức là nó sẽ khớp với giá trị trả về trong groupby.
————————————————–
CÂU 1:
Nếu bạn muốn in ra luôn tháng có doanh thu lớn nhất thì dùng hàm max() lấy ra giá trị tháng lớn nhất xong lặp qua series để lấy tháng của giá trị lớn nhất ra nhé:
max_value = sales_value.max()
for month, sales in sales_value.items():
if sales == max_value:
print(month, sales)
Phần Task 2 mình cố gắng viết y chang như bạn nhưng nó báo lỗi như sau
File "C:UsershomeAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagespandascoreapply.py", line 1082, in apply
return self.apply_standard()
File "C:UsershomeAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagespandascoreapply.py", line 1137, in apply_standard
mapped = lib.map_infer(
File "pandas_libslib.pyx", line 2870, in pandas._libs.lib.map_infer
File "c:PyThonSecond.py", line 31, in <lambda>
address_to_city = lambda address: address.split(',')[1]
AttributeError: 'float' object has no attribute 'split'
phần code thì mình viết không gì khác bạn
import pandas as pd
import os as os
import matplotlib.pyplot as plt
folder ='C:Data'
filename ='Sales2019_1.csv'
path=folder+filename
listfile = os.listdir(folder)
frames =[]
for file in listfile :
if file.endswith('.csv'):
filepath = folder+ '\'+ file
df1= pd.read_csv(filepath)
frames.append(df1)
result = pd.concat(frames)
df = result
df.to_csv(folder +"Sales2019.csv",index=False)
#def getCity(address: str):
# return address.split(',')[1]
#print(df['Purchase Address'])
#print(df['Purchase Address'].dtype)
#df =df[df['Purchase Address'].dtype!=str]
address_to_city = lambda address: address.split(',')[1]
df['City'] = df['Purchase Address'].apply(address_to_city)
print(df.head())
Cái lỗi như trên có phải mình dùng Visual Studio code không nhỉ? Cảm ơn bạn nhiều
Mình viết như sau về getCity nhưng nó không chạy. Sửa làm sao ạ:
def getCity(address: str):
return address.split(',')[1]
df['City']= getCity(df['Purchase Address'])
nó báo Error như sau:
return object.__getattribute__(self, name)
AttributeError: 'Series' object has no attribute 'split'
Thank you chị. Chị giải thích dễ hiễu lắm ạ.
E mới dùng vs code ạ, làm thế nào để nhập một đoạn code để chạy lần lượt giống như chị ạ
Đúng cái đang cần <3
Cảm thấy choáng ngợp với tốc độ trình bày và sự hiểu biết của bạn, không chỉ trong lập trình mà còn là ngoại ngữ nữa. Mong bạn có thêm nhiều video như thế này nữa. Chúc thành công.
Tuyệt vời ạ :3 một video rất dễ hiểu và chi tiết tới từng những lưu ý nhỏ cho các bạn newbie như em :"
Hay quá chị ơi rất clear ah
bổ ích quá ạ
Thanks for sharing
em cảm ơn chị nhiều lắm
Cảm ơn bạn, có cách nào xuất biểu đồ ra file Excel luôn không,
Chị ơi cho e xin file sale2020all.csv đc kh ạ
Chả hiểu j
Hay quá chị ơi , mong chị ra nhiều video kiểu này
em có một file sắp xếp theo cột và hàng là ngày và giờ, bây giờ em chỉ muốn lấy dữ liệu ở một khung giờ cố định trong ngày thì làm sao hả chị, chị có thể giúp em được không ạ
Hy vọng bạn có thể chia sẽ thêm các video về "Python & excel".
Chị ơi chị cho e xin file sales2020 đc khum ạ
chị ơi phần doanh thu theo từng khung giờ
sale_hour=df.groupby('order hour').sum()['sale']
thì kết quả in ra bị đổi thành dạng 7.137212e+05
chị giúp e với
☝☝☝ muốn mở ních bị khóa thấy ông THANH TUẤN làm ổn lắm 😀 🤌🙃😍
Coi video quá hay, không bỏ 1 giây nào. Cảm ơn video cực kỳ bổ ích. Hy vọng bạn ra thêm nhiều video để cộng đồng có thể học hỏi được nhiều hơn
❤
Sao để tốc độ bình thường mà sao bạn thảo tác nhanh quá hix, chưa kịp load @@
Trời , chị học tập bên Mỹ ạ , sao lại có người thông minh thế này được . IQ chị được 200 ko ?
Clever girl . From Vietnam
Trình bày gọn gàng và dễ hiểu. Xin cám ơn ❤