Tôi muốn tìm tất cả các giá trị trong khung dữ liệu gấu trúc có chứa khoảng trắng (bất kỳ số lượng tùy ý nào) và thay thế các giá trị đó bằng nans. Bất kỳ ý tưởng làm thế nào điều này có thể được cải thiện? Về cơ bản tôi muốn chuyển cái này:
Vào điều này:
Tôi đã quản lý để làm điều đó với mã bên dưới, nhưng con người là xấu xí. Nó không phải là Pythonic và tôi chắc chắn rằng nó cũng không phải là cách sử dụng gấu trúc hiệu quả nhất. Tôi lặp qua mỗi cột và thay thế boolean so với mặt nạ cột được tạo bằng cách áp dụng một hàm thực hiện tìm kiếm regex của mỗi giá trị, khớp với khoảng trắng.
Nó có thể được tối ưu hóa một chút bằng cách chỉ lặp qua các trường có thể chứa các chuỗi trống:
Nhưng đó không phải là một cải tiến nhiều Và cuối cùng, mã này đặt các chuỗi mục tiêu thành không ai, hoạt động với các chức năng của Pandas như 6, nhưng sẽ rất tốt cho sự hoàn chỉnh nếu tôi thực sự có thể chèn trực tiếp 7 thay vì 8.
Martineau Huy hiệu vàng 116K2525 gold badges161 silver badges286 bronze badges Đã hỏi ngày 18 tháng 11 năm 2012 lúc 22:22Nov 18, 2012 at 22:22
Chris Clarkchris ClarkChris Clark 4.3942 Huy hiệu vàng21 Huy hiệu bạc22 Huy hiệu đồng2 gold badges21 silver badges22 bronze badges 3 Tôi nghĩ 9 thực hiện công việc, vì Pandas 0,13:
Produces:
Như Temak đã chỉ ra, hãy sử dụng 0 trong trường hợp dữ liệu hợp lệ của bạn chứa không gian trắng.
SMCI 30.8K18 Huy hiệu vàng111 Huy hiệu bạc146 Huy hiệu đồng18 gold badges111 silver badges146 bronze badges Đã trả lời ngày 21 tháng 2 năm 2014 lúc 18:48Feb 21, 2014 at 18:48
Patricksurrypatricksurrypatricksurry 5.2902 Huy hiệu vàng26 Huy hiệu bạc36 Huy hiệu đồng2 gold badges26 silver badges36 bronze badges 10 Nếu bạn muốn thay thế một chuỗi trống và bản ghi chỉ bằng khoảng trống, câu trả lời đúng là!:correct answer is!:
Câu trả lời được chấp nhận
Không thay thế một chuỗi trống !, Bạn có thể tự thử với ví dụ đã cho được cập nhật một chút:
Cũng lưu ý rằng 'fo o' không được thay thế bằng nan, mặc dù nó chứa một không gian. Lưu ý thêm, rằng một đơn giản:
Cũng không hoạt động - hãy thử nó. Đã trả lời ngày 14 tháng 12 năm 2017 lúc 10:20Dec 14, 2017 at 10:20
Philipp Schwarzphilipp SchwarzPhilipp Schwarz Huy hiệu vàng 16K531 Huy hiệu bạc35 Huy hiệu đồng5 gold badges31 silver badges35 bronze badges Bạn nghĩ thế nào về: 0Hàm 1 áp dụng một hàm cho mọi ô của DataFrame.Đã trả lời ngày 18 tháng 11 năm 2012 lúc 23:15Nov 18, 2012 at 23:15
BrenbarnbrenbarnBrenBarn Phù thủy vàng 234K3535 gold badges397 silver badges375 bronze badges 5 Tôi đã làm điều này: 1hoặc 2Bạn có thể tước tất cả STR, sau đó thay thế STR trống bằng 2.
Petezurich 8.4758 Huy hiệu vàng38 Huy hiệu bạc55 Huy hiệu Đồng8 gold badges38 silver badges55 bronze badges Đã trả lời ngày 29 tháng 4 năm 2016 lúc 9:34Apr 29, 2016 at 9:34
2 Nếu bạn đang xuất dữ liệu từ tệp CSV thì có thể đơn giản như thế này: 3Điều này sẽ tạo ra khung dữ liệu cũng như thay thế các giá trị trống dưới dạng na
Ayhan 66.9K18 Huy hiệu vàng173 Huy hiệu bạc192 Huy hiệu Đồng18 gold badges173 silver badges192 bronze badges Đã trả lời ngày 7 tháng 1 năm 2018 lúc 16:07Jan 7, 2018 at 16:07
1 Đơn giản nhất trong tất cả các giải pháp: 4Đã trả lời ngày 22 tháng 3 năm 2018 lúc 14:44Mar 22, 2018 at 14:44
Gil Baggiogil BaggioGil Baggio 11.8k3 Huy hiệu vàng47 Huy hiệu bạc34 Huy hiệu đồng3 gold badges47 silver badges34 bronze badges Đối với một giải pháp rất nhanh và đơn giản trong đó bạn kiểm tra sự bình đẳng so với một giá trị duy nhất, bạn có thể sử dụng phương thức 3. 5Đã trả lời ngày 3 tháng 11 năm 2017 lúc 22:48Nov 3, 2017 at 22:48
Ted Petrout PetrouTed Petrou 55.4K19 Huy hiệu vàng122 Huy hiệu bạc129 Huy hiệu đồng19 gold badges122 silver badges129 bronze badges 0 Điều này làm việc cho tôi. Khi tôi nhập tệp CSV của mình, tôi đã thêm na_values = ''. Không gian không được bao gồm trong các giá trị NAN mặc định. 6
Joe Ferndz 8.2972 Huy hiệu vàng12 Huy hiệu bạc32 Huy hiệu Đồng2 gold badges12 silver badges32 bronze badges Đã trả lời ngày 8 tháng 5 năm 2020 lúc 0:49May 8, 2020 at 0:49
7Đã trả lời ngày 29 tháng 9 năm 2018 lúc 20:31Sep 29, 2018 at 20:31
JayanthajayanthaJayantha 2.1011 Huy hiệu vàng10 Huy hiệu bạc12 Huy hiệu đồng1 gold badge10 silver badges12 bronze badges Tất cả đều gần với câu trả lời đúng, nhưng tôi sẽ không nói bất kỳ giải quyết vấn đề nào trong khi vẫn dễ đọc nhất cho những người khác đọc mã của bạn. Tôi muốn nói rằng câu trả lời là sự kết hợp giữa câu trả lời của Brenbarn và nhận xét của Tuomasttik bên dưới câu trả lời đó. Câu trả lời của Brenbarn sử dụng 4 tích hợp, nhưng không hỗ trợ loại bỏ các chuỗi trống, như OP yêu cầu và tôi sẽ có xu hướng gán cho trường hợp sử dụng tiêu chuẩn là thay thế các chuỗi bằng null.Tôi viết lại nó với 5, vì vậy bạn có thể gọi nó vào 6 hoặc 7.Python 3: Để thay thế các chuỗi trống hoặc chuỗi các không gian hoàn toàn: 8Để thay thế chuỗi không gian hoàn toàn: 9Để sử dụng điều này trong Python 2, bạn sẽ cần thay thế 8 bằng 9.Python 2: Để thay thế các chuỗi trống hoặc chuỗi các không gian hoàn toàn: 0Để thay thế chuỗi không gian hoàn toàn: 1Để sử dụng điều này trong Python 2, bạn sẽ cần thay thế 8 bằng 9.May 12, 2019 at 4:05
spen.smithspen.smithspen.smith Python 2:2 silver badges14 bronze badges Đã trả lời ngày 12 tháng 5 năm 2019 lúc 4:05 25482 Huy hiệu bạc14 Huy hiệu ĐồngJan 14, 2019 at 5:02
Đây không phải là một giải pháp thanh lịch, nhưng những gì dường như hoạt động là tiết kiệm cho XLSX và sau đó nhập lại. Các giải pháp khác trên trang này không hiệu quả với tôi, không chắc tại sao.David Kong Đã trả lời ngày 14 tháng 1 năm 2019 lúc 5:025 silver badges18 bronze badges David Kongdavid Kong 3hoặc 4
Bạn có thể tước tất cả STR, sau đó thay thế STR trống bằng 2.Oct 8, 2020 at 10:54
1
Petezurich 5Đã trả lời ngày 1 tháng 2 năm 2018 lúc 10:14Feb 1, 2018 at 10:14
EricericERIC 1151 Huy hiệu vàng2 Huy hiệu bạc9 Huy hiệu đồng1 gold badge2 silver badges9 bronze badges 1 |