Điều này thường không sao, vì tập dữ liệu có thể rất lớn và việc xóa một vài hàng sẽ không ảnh hưởng lớn đến kết quả
Thí dụ
Trả về Khung dữ liệu mới không có ô trống
nhập gấu trúc dưới dạng pd
df = pd. read_csv['dữ liệu. csv']
new_df = df. dropna[]
in [new_df. to_string[]]
Tự mình thử »Ghi chú. Theo mặc định, phương thức
>>> for item in something:
..
...
5 trả về một DataFrame mới và sẽ không thay đổi khung gốcNếu bạn muốn thay đổi DataFrame ban đầu, hãy sử dụng đối số
>>> for item in something:
..
...
6Thí dụ
Xóa tất cả các hàng có giá trị NULL
nhập gấu trúc dưới dạng pd
df = pd. read_csv['dữ liệu. csv']
df. dropna [tại chỗ = True]
in [df. to_string[]]
Tự mình thử »Ghi chú. Bây giờ,
>>> for item in something:
..
...
7 sẽ KHÔNG trả về Khung dữ liệu mới, nhưng nó sẽ xóa tất cả các hàng chứa giá trị NULL khỏi Khung dữ liệu ban đầuThay thế các giá trị rỗng
Một cách khác để xử lý các ô trống là thay vào đó hãy chèn một giá trị mới
Bằng cách này, bạn không phải xóa toàn bộ hàng chỉ vì một số ô trống
Phương thức
>>> for item in something:
..
...
8 cho phép chúng ta thay thế các ô trống bằng một giá trịThí dụ
Thay giá trị NULL bằng số 130
nhập gấu trúc dưới dạng pd
df = pd. read_csv['dữ liệu. csv']
df. fillna[130, tại chỗ = True]
Tự mình thử »Chỉ thay thế cho các cột được chỉ định
Ví dụ trên thay thế tất cả các ô trống trong toàn bộ Khung dữ liệu
Để chỉ thay thế các giá trị trống cho một cột, hãy chỉ định tên cột cho DataFrame
Thí dụ
Thay thế giá trị NULL trong cột "Calo" bằng số 130
nhập gấu trúc dưới dạng pd
df = pd. read_csv['dữ liệu. csv']
df["Calo"]. fillna[130, tại chỗ = True]
Tự mình thử »Thay thế bằng Mean, Median hoặc Mode
Một cách phổ biến để thay thế các ô trống, là tính giá trị trung bình, trung bình hoặc chế độ của cột
Pandas sử dụng các phương thức
>>> for item in something:
..
...
9 >YP_003612801.1_Firmicutes_Clostridia_Clostridiales
MTDYLLLFVGTVLVNNFVLVKFLGLCPFMGVSKKLETAMGMGLATTFVMTMASICAWLIDTWILIPLGLV
YLRTLAFILVIAVVVQFTEMVVRKTSPALYRLLGIFLPLITTNCAVLGVALLNINLGHNFMQSALYGFSA
AVGFSLVMVLFASIRERLAAADIPAPFRGNAIALVTAGLMSLAFMGFSGLVKL
0 và >YP_003612801.1_Firmicutes_Clostridia_Clostridiales
MTDYLLLFVGTVLVNNFVLVKFLGLCPFMGVSKKLETAMGMGLATTFVMTMASICAWLIDTWILIPLGLV
YLRTLAFILVIAVVVQFTEMVVRKTSPALYRLLGIFLPLITTNCAVLGVALLNINLGHNFMQSALYGFSA
AVGFSLVMVLFASIRERLAAADIPAPFRGNAIALVTAGLMSLAFMGFSGLVKL
1 để tính các giá trị tương ứng cho một cột được chỉ định Lý do nó hoạt động theo cách này là vì trong trình thông dịch tương tác, các câu lệnh được thực thi ngay sau khi bạn kết thúc chúng. Đó là một điều thuận tiện để làm, tương tác. Nó có nghĩa là bạn có thể làm
>>> def some_function[]:
..
...
hoặc
>>> for item in something:
..
...
… và sau đó sử dụng kết quả ngay lập tức. tab-hoàn thành chức năng, kiểm tra chức năng, xem kết quả của vòng lặp, xem nó đang chạy, v.v. Sử dụng một cái gì đó không phải là một dòng trống có nghĩa là bạn cần một trình kích hoạt khác để biết khi nào thực hiện mọi thứ. Đó nên là gì?
Và hãy nhớ rằng đó chỉ là một dòng trống để trình thông dịch tương tác thực thi câu lệnh. Bất kỳ loại khoảng trắng nào trên dòng làm cho nó không kết thúc khối và nó không phải khớp với phần thụt đầu dòng của phần còn lại của mã. Nếu đây chỉ là về dán mã, bạn có thể thêm khoảng trắng vào bất kỳ dòng trống nào không đứng trước dòng không thụt lề. [Nó chỉ yêu cầu bạn có thể nhìn thấy dòng tiếp theo, đây không phải là điều mà trình thông dịch tương tác có thể làm được. ]
Tôi không biết tại sao có những dòng trống giữa các dòng khác nhau và tôi muốn phân loại được thêm vào cùng một dòng với số gia nhập thay vì dòng mới, vì vậy đây là những gì tôi muốn
>YP_003612801.1_Firmicutes_Clostridia_Clostridiales
MTDYLLLFVGTVLVNNFVLVKFLGLCPFMGVSKKLETAMGMGLATTFVMTMASICAWLIDTWILIPLGLV
YLRTLAFILVIAVVVQFTEMVVRKTSPALYRLLGIFLPLITTNCAVLGVALLNINLGHNFMQSALYGFSA
AVGFSLVMVLFASIRERLAAADIPAPFRGNAIALVTAGLMSLAFMGFSGLVKL
Nếu tôi muốn chạy trong python có ai biết không?
trăn • 23k lượt xemTHÊM NHẬN XÉT • liên kết đã cập nhật 4. 9 năm trước bởi jomo018 ▴ 670 • đã viết 4. 9 năm trước bởi horsedog ▴ 60
0
Vào chế độ chỉnh sửa
Kịch bản của bạn đang làm điều gì đó khó hiểu và nếu không xem kịch bản của bạn, chúng tôi không thể giúp bạn. Ngoài ra, vui lòng sử dụng thanh định dạng [đặc biệt là tùy chọn
>YP_003612801.1
_Firmicutes_Clostridia_Clostridiales
MTDYLLLFVGTVLVNNFVLVKFLGLCPFMGVSKKLETAMGMGLATTFVMTMASICAWLIDTWILIPLGLV
YLRTLAFILVIAVVVQFTEMVVRKTSPALYRLLGIFLPLITTNCAVLGVALLNINLGHNFMQSALYGFSA
AVGFSLVMVLFASIRERLAAADIPAPFRGNAIALVTAGLMSLAFMGFSGLVKL
0] để trình bày bài đăng của bạn tốt hơn. Tôi đã làm điều đó cho bạn thời gian này. THÊM TRẢ LỜI • liên kết 4. 9 năm trước bởi Ram 37k
0
Vào chế độ chỉnh sửa
Cảm ơn, tôi vừa định dạng nó
THÊM TRẢ LỜI • liên kết 4. 9 năm trước by horsedog ▴ 60
3
Vào chế độ chỉnh sửa
4. 9 năm trước
jomo018 ▴ 670
Các dòng bạn đọc bao gồm phần cuối của dòng [eol] từ tệp đầu vào. Lệnh in thêm phần cuối dòng của chính nó. Vì vậy, bạn kết thúc với hai eol do đó một dòng trống. Bạn có thể sửa lỗi này bằng cách sử dụng dải [] trên dòng bạn đọc. Ví dụ dòng. dải [] sẽ loại bỏ eol khỏi dòng
THÊM NHẬN XÉT • liên kết 4. 9 năm trước bởi jomo018 ▴ 670
1
Vào chế độ chỉnh sửa
>YP_003612801.1
_Firmicutes_Clostridia_Clostridiales
MTDYLLLFVGTVLVNNFVLVKFLGLCPFMGVSKKLETAMGMGLATTFVMTMASICAWLIDTWILIPLGLV
YLRTLAFILVIAVVVQFTEMVVRKTSPALYRLLGIFLPLITTNCAVLGVALLNINLGHNFMQSALYGFSA
AVGFSLVMVLFASIRERLAAADIPAPFRGNAIALVTAGLMSLAFMGFSGLVKL
1 phải tốt hơn >YP_003612801.1
_Firmicutes_Clostridia_Clostridiales
MTDYLLLFVGTVLVNNFVLVKFLGLCPFMGVSKKLETAMGMGLATTFVMTMASICAWLIDTWILIPLGLV
YLRTLAFILVIAVVVQFTEMVVRKTSPALYRLLGIFLPLITTNCAVLGVALLNINLGHNFMQSALYGFSA
AVGFSLVMVLFASIRERLAAADIPAPFRGNAIALVTAGLMSLAFMGFSGLVKL
2 để tránh bị cắt xén không mong muốn ở đầu dòngTHÊM TRẢ LỜI • liên kết 4. 9 năm trước bởi chen ★ 2. 4k
2
Vào chế độ chỉnh sửa
4. 9 năm trước
chen ★ 2. 4k
Đây là phỏng đoán của tôi.
1, bạn sử dụng readline[] để lấy các dòng từ tệp gốc
2, khi bạn sử dụng write[] để ghi các dòng vào tệp mới, bạn nối thêm
Tôi có thể xem mã của bạn nếu bạn đăng nó
THÊM NHẬN XÉT • liên kết 4. 9 năm trước bởi chen ★ 2. 4k
0
Vào chế độ chỉnh sửa
with open["sequence.fasta"] as file:
with open["taxonomy"] as name:
for line in taxonomy.readlines[]:
for i in file.readlines[]:
if i.startswith[">"]:
print[i+"_"+line]
else:
print[i]
THÊM TRẢ LỜI • liên kết 4. 9 năm trước by horsedog ▴ 60
1
Vào chế độ chỉnh sửa
Sử dụng chữ in với
>YP_003612801.1
_Firmicutes_Clostridia_Clostridiales
MTDYLLLFVGTVLVNNFVLVKFLGLCPFMGVSKKLETAMGMGLATTFVMTMASICAWLIDTWILIPLGLV
YLRTLAFILVIAVVVQFTEMVVRKTSPALYRLLGIFLPLITTNCAVLGVALLNINLGHNFMQSALYGFSA
AVGFSLVMVLFASIRERLAAADIPAPFRGNAIALVTAGLMSLAFMGFSGLVKL
4print[i+"_"+line, end=""]
Ngoài ra, bạn có thể kết hợp câu lệnh with
>>> for item in something:
..
...
0và vòng lặp for của bạn
>>> for item in something:
..
...
1Mã của bạn có
>YP_003612801.1
_Firmicutes_Clostridia_Clostridiales
MTDYLLLFVGTVLVNNFVLVKFLGLCPFMGVSKKLETAMGMGLATTFVMTMASICAWLIDTWILIPLGLV
YLRTLAFILVIAVVVQFTEMVVRKTSPALYRLLGIFLPLITTNCAVLGVALLNINLGHNFMQSALYGFSA
AVGFSLVMVLFASIRERLAAADIPAPFRGNAIALVTAGLMSLAFMGFSGLVKL
5, nhưng tôi cho rằng nó phải là >YP_003612801.1
_Firmicutes_Clostridia_Clostridiales
MTDYLLLFVGTVLVNNFVLVKFLGLCPFMGVSKKLETAMGMGLATTFVMTMASICAWLIDTWILIPLGLV
YLRTLAFILVIAVVVQFTEMVVRKTSPALYRLLGIFLPLITTNCAVLGVALLNINLGHNFMQSALYGFSA
AVGFSLVMVLFASIRERLAAADIPAPFRGNAIALVTAGLMSLAFMGFSGLVKL
6. Cũng không có lý do gì để gọi >YP_003612801.1
_Firmicutes_Clostridia_Clostridiales
MTDYLLLFVGTVLVNNFVLVKFLGLCPFMGVSKKLETAMGMGLATTFVMTMASICAWLIDTWILIPLGLV
YLRTLAFILVIAVVVQFTEMVVRKTSPALYRLLGIFLPLITTNCAVLGVALLNINLGHNFMQSALYGFSA
AVGFSLVMVLFASIRERLAAADIPAPFRGNAIALVTAGLMSLAFMGFSGLVKL
7 vì bạn chỉ đơn giản là lặp lại tệp. Bạn không cần phải tải nó hoàn toàn trong bộ nhớ