Lọc dữ liệu với hàm filter()

Viết mã hiệu quả với pandas

Leonidas Souliotis

PhD Candidate

Mục đích của filter()

Giới hạn kết quả theo đặc trưng tổng hợp

  • Số giá trị thiếu
  • Trung bình của một đặc trưng
  • Số lần xuất hiện của nhóm
Viết mã hiệu quả với pandas

Lọc với groupby().filter()

restaurant_grouped = restaurant.groupby('day')
filter_trans = lambda x : x['total_bill'].mean() > 20
restaurant_filtered = restaurant_grouped.filter(filter_trans)
Thời gian với .filter(): 0.00414085388184 giây
print(restaurant_filtered['tip'].mean())
3.11527607362
print(restaurant['tip'].mean())
2.9982786885245902
Viết mã hiệu quả với pandas

So sánh với phương pháp thuần

t=[restaurant.loc[df['day'] == i]['tip'] for i in restaurant['day'].unique() 
    if restaurant.loc[df['day'] == i]['total_bill'].mean()>20]
restaurant_filtered = t[0]
for j in t[1:]: 
    restaurant_filtered=restaurant_filtered.append(j,ignore_index=True)
Thời gian với Python thuần: 0.00663900375366 giây
print(restaurant_filtered.mean())
3.11527607362
Chênh lệch thời gian: 60.329341317157024%
Viết mã hiệu quả với pandas

Hãy làm nhé!

Viết mã hiệu quả với pandas

Preparing Video For Download...