Tôi có một Excel như bên dưới
Tôi phải đọc Excel và thực hiện một số hoạt động. Vấn đề là tôi phải bỏ qua các hàng và cột trống. Trong ví dụ trên, nó chỉ nên đọc từ B3: D6. Nhưng với mã dưới đây, nó xem xét tất cả các hàng trống cũng như bên dưới
Mã tôi đang sử dụng
import pandas as pd
user_input = input["Enter the path of your file: "]
user_input_sheet_master = input["Enter the Sheet name : "]
master = pd.read_excel[user_input,user_input_sheet_master]
print[master.head[5]]
Cách bỏ qua các hàng và cột trống để có được đầu ra dưới đây
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
Dựa trên một số nghiên cứu, tôi đã thử sử dụng df.dropna[how='all']
nhưng nó cũng đã xóa COLA
và COLB
. Tôi không thể mã hóa HardCode cho skiprows
hoặc skipcolumns
vì nó có thể không giống nhau mỗi lần. Không có hàng và cột nào bị bỏ qua có thể thay đổi. Đôi khi có thể không có bất kỳ hàng hoặc cột trống nào. Trong trường hợp đó, không cần phải xóa bất cứ điều gì.
Hỏi ngày 19 tháng 8 năm 2020 lúc 8:02Aug 19, 2020 at 8:02
AvinashavinashAvinash
5233 Huy hiệu bạc14 Huy hiệu Đồng3 silver badges14 bronze badges
Bạn chắc chắn cần sử dụng dropna
df = df.dropna[how='all'].dropna[axis=1, how='all']
EDIT:
Nếu chúng ta có tệp sau:
Và sau đó sử dụng mã này:
df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
0 nhìn theo cách sau:Nếu chúng ta bắt đầu với:
Và sử dụng chính xác cùng một mã, tôi nhận được:
Cuối cùng, bắt đầu từ:
Nhận giống như trong trường hợp đầu tiên.
Đã trả lời ngày 19 tháng 8 năm 2020 lúc 8:19Aug 19, 2020 at 8:19
4
Cải thiện bài viết
Lưu bài viết
Cải thiện bài viết
Lưu bài viết
Đọc
Approach:
- Bàn luận
- Trong bài viết này, chúng tôi sẽ cố gắng xem các cách khác nhau để loại bỏ cột trống, cột null và cột giá trị Zeros. Đầu tiên, chúng tôi sẽ tạo một khung dữ liệu mẫu và sau đó chúng tôi sẽ thực hiện các hoạt động của chúng tôi trong các ví dụ tiếp theo vào cuối, bạn sẽ có được kiến thức mạnh mẽ về cách xử lý tình huống này với gấu trúc.
- Nhập thư viện Python yêu cầu.
- Tạo một khung dữ liệu mẫu.
Sử dụng phương thức pandas dropna [], nó cho phép người dùng phân tích và thả các hàng/cột với các giá trị null theo các cách khác nhau.DataFrameName.dropna[axis=0, how=’any’, inplace=False]
Parameters:
- Hiển thị khung dữ liệu cập nhật.
- Cú pháp: dataFramename.dropna [trục = 0, How = xông bất kỳ
- Trục: Trục lấy giá trị int hoặc chuỗi cho các hàng/cột. Đầu vào có thể là 0 hoặc 1 cho số nguyên và ‘index, hoặc‘ cột cho chuỗi.
Làm thế nào: Làm thế nào chỉ có giá trị chuỗi của hai loại [‘bất kỳ trò chơi hay’ tất cả tất cả]. ’Bất kỳ người nào cũng làm rơi hàng/cột nếu bất kỳ giá trị nào là null và’ tất cả các điểm rơi chỉ khi tất cả các giá trị là null.
tại chỗ: đó là một boolean làm cho các thay đổi trong khung dữ liệu nếu đúng.
Python3
Dữ liệu mẫu:
Đây là khung dữ liệu mẫu mà chúng tôi sẽ thực hiện các hoạt động khác nhau.
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
1 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
2df = df.dropna[how='all'].dropna[axis=1, how='all']
6df = df.dropna[how='all'].dropna[axis=1, how='all']
7df = df.dropna[how='all'].dropna[axis=1, how='all']
8df = df.dropna[how='all'].dropna[axis=1, how='all']
9df = df.dropna[how='all'].dropna[axis=1, how='all']
9df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
1df = df.dropna[how='all'].dropna[axis=1, how='all']
6df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
3 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
9df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df = df.dropna[how='all'].dropna[axis=1, how='all']
1df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df = df.dropna[how='all'].dropna[axis=1, how='all']
1df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df.dropna[how='all']
0 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
1 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
4df.dropna[how='all']
6df.dropna[how='all']
7
Output:
5 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
7 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
8 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
9 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
0__21____2221____df = df.dropna[how='all'].dropna[axis=1, how='all']
4df = df.dropna[how='all'].dropna[axis=1, how='all']
5df = df.dropna[how='all'].dropna[axis=1, how='all']
df.dropna[how='all']
1df.dropna[how='all']
2df.dropna[how='all']
3
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6 df.dropna[how='all']
5Python3
Dữ liệu mẫu:
Đây là khung dữ liệu mẫu mà chúng tôi sẽ thực hiện các hoạt động khác nhau.
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
1 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
2 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
1 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
4df = df.dropna[how='all'].dropna[axis=1, how='all']
6df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
3 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
9df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df = df.dropna[how='all'].dropna[axis=1, how='all']
1df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df = df.dropna[how='all'].dropna[axis=1, how='all']
1df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df.dropna[how='all']
0 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
1 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
4skipcolumns
3
skipcolumns
4
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6skipcolumns
6skipcolumns
7 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6skipcolumns
9dropna
0 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6dropna
2dropna
3skipcolumns
3
Output:
5 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
7 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
8 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
9 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
0__21____2221____df = df.dropna[how='all'].dropna[axis=1, how='all']
4df = df.dropna[how='all'].dropna[axis=1, how='all']
5df = df.dropna[how='all'].dropna[axis=1, how='all']
df.dropna[how='all']
1df.dropna[how='all']
2df.dropna[how='all']
3
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6 df.dropna[how='all']
5Python3
Dữ liệu mẫu:
Đây là khung dữ liệu mẫu mà chúng tôi sẽ thực hiện các hoạt động khác nhau.
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
1 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
2df = df.dropna[how='all'].dropna[axis=1, how='all']
6df = df.dropna[how='all'].dropna[axis=1, how='all']
7df = df.dropna[how='all'].dropna[axis=1, how='all']
8df = df.dropna[how='all'].dropna[axis=1, how='all']
9df = df.dropna[how='all'].dropna[axis=1, how='all']
9df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
1df = df.dropna[how='all'].dropna[axis=1, how='all']
6df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
3 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
9df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df = df.dropna[how='all'].dropna[axis=1, how='all']
1df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df = df.dropna[how='all'].dropna[axis=1, how='all']
1df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df.dropna[how='all']
0 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
1 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
4skipcolumns
3
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
5 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
7 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
8 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
9df = df.dropna[how='all'].dropna[axis=1, how='all']
0__21____2221____df = df.dropna[how='all'].dropna[axis=1, how='all']
4df = df.dropna[how='all'].dropna[axis=1, how='all']
5 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
37 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6dropna
2dropna
3skipcolumns
4
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6skipcolumns
6skipcolumns
7 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6skipcolumns
9dropna
0 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6dropna
2dropna
3skipcolumns
3
Output:
df.dropna[how='all']
1df.dropna[how='all']
2df.dropna[how='all']
3
6 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
df.dropna[how='all']
5
Ví dụ 1:
Python3
Dữ liệu mẫu:
Đây là khung dữ liệu mẫu mà chúng tôi sẽ thực hiện các hoạt động khác nhau.
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
1 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
2df = df.dropna[how='all'].dropna[axis=1, how='all']
6df = df.dropna[how='all'].dropna[axis=1, how='all']
7df = df.dropna[how='all'].dropna[axis=1, how='all']
8df = df.dropna[how='all'].dropna[axis=1, how='all']
9df = df.dropna[how='all'].dropna[axis=1, how='all']
9df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
1df = df.dropna[how='all'].dropna[axis=1, how='all']
6df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
3 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
9df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df = df.dropna[how='all'].dropna[axis=1, how='all']
1df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df = df.dropna[how='all'].dropna[axis=1, how='all']
1df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df.dropna[how='all']
0 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
1 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
4 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
5 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
7 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
8 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
9df = df.dropna[how='all'].dropna[axis=1, how='all']
0__21____2221____df = df.dropna[how='all'].dropna[axis=1, how='all']
4df = df.dropna[how='all'].dropna[axis=1, how='all']
5 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
5 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
7 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
8 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
9df = df.dropna[how='all'].dropna[axis=1, how='all']
0__21____2221____df = df.dropna[how='all'].dropna[axis=1, how='all']
4df = df.dropna[how='all'].dropna[axis=1, how='all']
5 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
94df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
96 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6dropna
2dropna
3skipcolumns
4
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6skipcolumns
6skipcolumns
7 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6skipcolumns
9dropna
0 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6dropna
2dropna
3skipcolumns
3
Output:
df.dropna[how='all']
1df.dropna[how='all']
2df.dropna[how='all']
3
6 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
df.dropna[how='all']
5
Ví dụ 1:
Python3
Dữ liệu mẫu:
Đây là khung dữ liệu mẫu mà chúng tôi sẽ thực hiện các hoạt động khác nhau.
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
1 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
2df = df.dropna[how='all'].dropna[axis=1, how='all']
6df = df.dropna[how='all'].dropna[axis=1, how='all']
7df = df.dropna[how='all'].dropna[axis=1, how='all']
8df = df.dropna[how='all'].dropna[axis=1, how='all']
9df = df.dropna[how='all'].dropna[axis=1, how='all']
9df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
1df = df.dropna[how='all'].dropna[axis=1, how='all']
6df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
3 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
9df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df = df.dropna[how='all'].dropna[axis=1, how='all']
1df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df = df.dropna[how='all'].dropna[axis=1, how='all']
1df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5df.dropna[how='all']
0 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
1 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
4skipcolumns
3
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
5 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
7 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
8 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
9df = df.dropna[how='all'].dropna[axis=1, how='all']
0__21____2221____df = df.dropna[how='all'].dropna[axis=1, how='all']
4df = df.dropna[how='all'].dropna[axis=1, how='all']
5 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
94df = pd.read_excel['tst1.xlsx', header=None]
df = df.dropna[how='all'].dropna[how='all', axis=1]
headers = df.iloc[0]
new_df = pd.DataFrame[df.values[1:], columns=headers]
5 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
96 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6dropna
2dropna
3 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
37 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6dropna
2dropna
3skipcolumns
4
ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6skipcolumns
6skipcolumns
7 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6skipcolumns
9dropna
0 ColA ColB ColC
0 10 20 30
1 23 NaN 45
2 NaN 30 50
6dropna
2dropna
3skipcolumns
3
Output: