- Bài 1: Tìm hiểu về pandas
- Bài 2: Hướng dẫn cài đặt pandas
- Bài 3: Giới thiệu về cấu trúc dữ liệu
- Bài 4: Series
- Bài 5: DataFrame
- Bài 6: Panel
- Bài 7: Hàm cơ bản - Series
- Bài 8: Các hàm cơ bản : DataFrame
- Bài 9: Thống kê
- Bài 10: Ứng dụng Hàm
- Bài 11: Đọc dữ liệu và kĩ thuật reindexing
- Bài 12: Iteration ( Duyệt phần tử)
- Bài 13: Sort ( Sắp xếp )
- Bài 14: Làm việc với dữ liệu Text (P1)
- Bài 15: Làm việu với dữ liệu Text (p2)
- Bài 16: Options và Customize
- Bài 17: Data Selection và Indexing trong Pandas - p1
- Bài 18: Data Selection và Indexing trong Pandas - p2
- Bài 19: Hàm thống kê
- Bài 20: Hàm Window
- Bài 21: Aggregate
- Bài 22: Missing Data ( Thiếu dữ liệu )
- Bài 23: GroupBy (Nhóm dữ liệu) - p1
- Bài 24: GroupBy (Nhóm dữ liệu)- P2
- Bài 25: Joining/merging
Bài 10: Ứng dụng Hàm - Python Panda
Đăng bởi: Admin | Lượt xem: 1928 | Chuyên mục: Python
Để áp dụng các hàm của riêng bạn hoặc của thư viện khác cho Pandas, bạn nên biết ba phương pháp quan trọng. Các phương pháp được thảo luận dưới đây. Phương pháp thích hợp để sử dụng phụ thuộc vào việc liệu hàm của bạn có hoạt động trên toàn bộ DataFrame, theo hàng hoặc theo cột hay không.
- pipe ()
- apply()
- applymap()
1. Table-wise :
Các hoạt động tùy chỉnh có thể được thực hiện bằng cách chuyển hàm và số lượng tham số thích hợp làm đối số pipe. Do đó, hoạt động được thực hiện trên toàn bộ DataFrame.
Ví dụ: thêm giá trị 2 vào tất cả các phần tử trong DataFrame
def adder(ele1,ele2):
return ele1+ele2
Bây giờ chúng ta sẽ sử dụng hàm tùy chỉnh trên DataFrame.
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.pipe(adder,2)
Toàn bộ code như sau :
import pandas as pd
import numpy as np
def adder(ele1,ele2):
return ele1+ele2
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.pipe(adder,2)
print df.apply(np.mean)
Kết quả :
col1 col2 col3
0 2.176704 2.219691 1.509360
1 2.222378 2.422167 3.953921
2 2.241096 1.135424 2.696432
3 2.355763 0.376672 1.182570
4 2.308743 2.714767 2.130288
2. Hàm hàng hoặc cột wise
Có thể áp dụng các hàm tùy ý dọc theo các trục của DataFrame hoặc Panel bằng cách sử dụng phương thức apply (), giống như các phương pháp thống kê ư, lấy đối số trục tùy chọn. Theo mặc định, việc thực hiện cột , coi mỗi cột như một mảng.
Ví dụ 1 :
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.apply(np.mean)
print df.apply(np.mean)
Kết quả :
col1 -0.288022
col2 1.044839
col3 -0.187009
dtype: float64
Truyền tham số trục
Ví dụ 2 :
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.apply(np.mean,axis=1)
print df.apply(np.mean)
Kết quả :
col1 0.034093
col2 -0.152672
col3 -0.229728
dtype: float64
Ví dụ 3:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.apply(lambda x: x.max() - x.min())
print df.apply(np.mean)
Kết quả :
col1 -0.167413
col2 -0.370495
col3 -0.707631
dtype: float64
3. Các phần tử wise
Không phải tất cả các hàm đều có thể được vectơ hóa (không phải mảng NumPy trả về mảng khác cũng như bất kỳ giá trị nào), các phương thức applymap () trên DataFrame và tương tự map () trên Series chấp nhận bất kỳ hàm Python nào nhận một giá trị duy nhất và trả về một giá trị duy nhất.
Ví dụ 1:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
# My custom function
df['col1'].map(lambda x:x*100)
print df.apply(np.mean)
Kết quả :
col1 0.480742
col2 0.454185
col3 0.266563
dtype: float64
Ví dụ 2 :
import pandas as pd
import numpy as np
# My custom function
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.applymap(lambda x:x*100)
print df.apply(np.mean)
Kết quả :
col1 0.395263
col2 0.204418
col3 -0.795188
dtype: float64
Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!
- Bài 1: Tìm hiểu về pandas
- Bài 2: Hướng dẫn cài đặt pandas
- Bài 3: Giới thiệu về cấu trúc dữ liệu
- Bài 4: Series
- Bài 5: DataFrame
- Bài 6: Panel
- Bài 7: Hàm cơ bản - Series
- Bài 8: Các hàm cơ bản : DataFrame
- Bài 9: Thống kê
- Bài 10: Ứng dụng Hàm
- Bài 11: Đọc dữ liệu và kĩ thuật reindexing
- Bài 12: Iteration ( Duyệt phần tử)
- Bài 13: Sort ( Sắp xếp )
- Bài 14: Làm việc với dữ liệu Text (P1)
- Bài 15: Làm việu với dữ liệu Text (p2)
- Bài 16: Options và Customize
- Bài 17: Data Selection và Indexing trong Pandas - p1
- Bài 18: Data Selection và Indexing trong Pandas - p2
- Bài 19: Hàm thống kê
- Bài 20: Hàm Window
- Bài 21: Aggregate
- Bài 22: Missing Data ( Thiếu dữ liệu )
- Bài 23: GroupBy (Nhóm dữ liệu) - p1
- Bài 24: GroupBy (Nhóm dữ liệu)- P2
- Bài 25: Joining/merging