Xin chào, tôi muốn đối sánh thẳng hai cột [cả hai mã vị trí] theo số dự án bằng cách sử dụng công cụ Đối sánh mờ và đưa ra tỷ lệ phần trăm đối sánh dựa trên ký tự đối sánh
Tôi biết công cụ đối sánh mờ quá phức tạp và tôi tự hỏi liệu nó có phải là công cụ phù hợp không hay liệu tôi có thể làm điều đó trong excel không.
Đôi khi bạn không muốn sử dụng OpenRefine. Tại sao không? . Nhưng vâng, chắc chắn rồi, đôi khi có thể bạn không
%matplotlib inline
import pandas as pd
____1df.head[]
Kết quả Ngày Loại giao dịch Loại thanh toán Chi tiết thanh toán Số tiền Họ/Tên doanh nghiệp Tên Địa chỉ Thành phố. --------Loại báo cáoTên bầu cửLoại bầu cửThành phốVăn phòngLoại tệpTênNăm báo cáoĐã gửi014/3/2017Thu nhậpKiểm tra12864$350. 00Tài khoản Nhà nước của Đảng Cộng hòa AlaskaNaNNaNNaN. NaN24 Hour Report2017 - Cuộc bầu cử thành phố AnchorageAnchorage MunicipalAnchorage, Municipality of School Board Ứng cử viên Key E Schuster20174/3/2017124/3/2017Thu nhậpThẻ tín dụngNaN$500. 00Cà PhêDanNaNNaN. NaN24 Hour Report2017 - Bầu cử Thành phố AnchorageAnchorage Thành phố Anchorage, Ứng cử viên Hội đồng Trường Đô thịKay E Schuster20174/3/2017234/3/2017IncomeCheck3047$300. 00ACS Nhân viên PACNaNNaNNaN. Báo cáo giờ NaN242017 - Cuộc bầu cử thành phố AnchorageAnchorage MunicipalAnchorage, Thành phố của ứng cử viên Quốc hộiPete Petersen20174/3/2017344/3/2017Thu nhậpThẻ tín dụngNaN$500. 00HolmesPatrickNaNNaN. Báo cáo Giờ 24 của NaN2017 - Bầu cử Thành phố AnchorageAnchorage MunicipalAnchorage, Thành phố của NaNGroup Đảng Cộng hòa Alaska20174/3/2017454/3/2017Thu nhậpThẻ tín dụngNaN$500. 00GonzalesMark L. NaNNaN. NaN24 Hour Report2017 - Cuộc bầu cử thành phố AnchorageAnchorage MunicipalAnchorage, Thành phố của NaNGroup Đảng Cộng hòa Alaska20174/3/2017
5 hàng × 26 cột
Tất cả các lựa chọn của chúng tôi cho “quỹ PAC thí điểm trên biển Alaska” là gì?df[df['Last/Business Name'] == 'Alaska Sea Pilot PAC fund'].shape
[3, 26]
df[df['Last/Business Name'] == 'ALASKA SEA PILOT PAC FUND'].shape
[6, 26]
df[df['Last/Business Name'] == 'Alaska Sea Pilot Pac Fund'].shape
[6, 26]
Có lẽ chúng ta có thể ném vào một biểu thức chính quy và bắt thêm một số?
df[df['Last/Business Name'].str.contains["Sea.*Pilot", na=False]]['Last/Business Name'].value_counts[]
df = pd.read_csv["CD_Transactions_07-23-2017.CSV", index_col=False]
0Sử dụng Fuzzywuzzy để tìm các trận đấu mờĐối sánh mờ là đối sánh không đầy đủ hoặc không chính xác. Gói plumb của Python có một số chức năng có thể giúp ích cho bạn, mặc dù chúng hơi khó hiểu. Tôi sẽ lấy các ví dụ từ GitHub và chú thích chúng một chút, sau đó chúng ta sẽ sử dụng chúng
Đầu tiên, cài đặtuzzywuzzy với
df = pd.read_csv["CD_Transactions_07-23-2017.CSV", index_col=False]
1Sau đó, chúng tôi sẽ nhập nó
df = pd.read_csv["CD_Transactions_07-23-2017.CSV", index_col=False]
2HÃY ĐẢM BẢO BẠN ĐÃ CÀI ĐẶT BẰNG
9 HOẶC KHÁC NÓ SẼ KHIẾU NẠI TẠI ĐÂY VÀ CŨNG SẼ CHẬM HƠNdf[df['Last/Business Name'] == 'Alaska Sea Pilot PAC fund'].shape
[3, 26]
0 so sánh toàn bộ chuỗi, theo thứ tự
[3, 26]
Mọi thứ trong chuỗi đều quan trọng ở đây
df = pd.read_csv["CD_Transactions_07-23-2017.CSV", index_col=False]
3df = pd.read_csv["CD_Transactions_07-23-2017.CSV", index_col=False]
4[3, 26]
1 so sánh các phần con của chuỗi
[3, 26]
Trận đấu một phần là tốt. Dấu chấm than ở cuối khiến
[3, 26]
0 không giống so sánh lần trước, nhưng lần này thì không saodf = pd.read_csv["CD_Transactions_07-23-2017.CSV", index_col=False]
5df = pd.read_csv["CD_Transactions_07-23-2017.CSV", index_col=False]
6[3, 26]
3 bỏ qua trật tự từ
[3, 26]
[3, 26]
3 sắp xếp tất cả các từ trước, vì vậy “KENNEDY JOHN” và “JOHN KENNEDY” sẽ giống nhaudf = pd.read_csv["CD_Transactions_07-23-2017.CSV", index_col=False]
7df = pd.read_csv["CD_Transactions_07-23-2017.CSV", index_col=False]
8df = pd.read_csv["CD_Transactions_07-23-2017.CSV", index_col=False]
9df = pd.read_csv["CD_Transactions_07-23-2017.CSV", index_col=False]
8df.head[]
1df.head[]
2[3, 26]
5 bỏ qua các từ trùng lặp
[3, 26]
Tôi không biết tại sao bạn lại có “JOHN KENNEDY KENNEDY” nhưng nếu bạn sử dụng
[3, 26]
5 thì nó chắc chắn sẽ khớp với “JOHN KENNEDY”df.head[]
3df = pd.read_csv["CD_Transactions_07-23-2017.CSV", index_col=False]
8Trên thực tế, sử dụnguzzywuzzy trên tập dữ liệu của chúng tôi, bao gồm [3, 26]
7df.head[]
5df.head[]
6df.head[]
7df.head[]
8Vì chúng tôi đã nhập, hãy thu thập tất cả các tên doanh nghiệp thành một danh sách. Chúng tôi sẽ tìm kiếm trong danh sách để tìm những cái tên tương tự như Alaska Sea Pilot PAC Fun
df.head[]
9df[df['Last/Business Name'] == 'Alaska Sea Pilot PAC fund'].shape
0Bây giờ chúng ta sẽ sử dụng
[3, 26]
7 để tìm 15 trận đấu hàng đầudf[df['Last/Business Name'] == 'Alaska Sea Pilot PAC fund'].shape
1df[df['Last/Business Name'] == 'Alaska Sea Pilot PAC fund'].shape
2Wow, những cái đó trông khá đẹp. Có lẽ thay vào đó chúng ta chỉ nên tìm những cái cao hơn một số điểm nhất định?
df[df['Last/Business Name'] == 'Alaska Sea Pilot PAC fund'].shape
3____34df[df['Last/Business Name'] == 'Alaska Sea Pilot PAC fund'].shape
5Hay, khá gọn gàng
Lọc trực tiếp vớiuzzywuzzy
Chúng tôi cũng có thể sử dụng điều này trực tiếp với khung dữ liệu của mình, nếu chúng tôi muốn sử dụng
df[df['Last/Business Name'] == 'ALASKA SEA PILOT PAC FUND'].shape
0 để lọc thay vì đưa cho chúng tôi danh sách. Nó sẽ chậm hơn rất nhiều, nhưng đó là cuộc sống, tôi đoán vậy