Hướng dẫn delete row null python - xóa hàng null python

Tôi đang cố gắng xóa một hàng khỏi khung dữ liệu của mình trong đó một trong các cột có giá trị null. Hầu hết các trợ giúp tôi có thể tìm thấy liên quan đến việc loại bỏ các giá trị NAN chưa hoạt động cho tôi cho đến nay.

Ở đây tôi đã tạo khung dữ liệu:

  # successfully crated data frame
 df1 = ut.get_data[symbols, dates] # column heads are 'SPY', 'BBD'

# can't get rid of row containing null val in column BBD
# tried each of these with the others commented out but always had an 
# error or sometimes I was able to get a new column of boolean values
# but i just want to drop the row
df1 = pd.notnull[df1['BBD']] # drops rows with null val, not working
df1 = df1.drop[2010-05-04, axis=0]
df1 = df1[df1.'BBD' != null]
df1 = df1.dropna[subset=['BBD']]
df1 = pd.notnull[df1.BBD]


# I know the date to drop but still wasn't able to drop the row
df1.drop[[2015-10-30]]
df1.drop[['2015-10-30']]
df1.drop[[2015-10-30], axis=0]
df1.drop[['2015-10-30'], axis=0]


with pd.option_context['display.max_row', None]:
    print[df1]

Đây là đầu ra của tôi:

Ai đó có thể vui lòng cho tôi biết làm thế nào tôi có thể thả hàng này, tốt nhất là cả hai bằng cách xác định hàng theo giá trị null và cách thả theo ngày?

Tôi đã không làm việc với gấu trúc rất lâu và tôi đã bị mắc kẹt trong một giờ. Bât cư lơi khuyên nao cung se được đanh gia cao.

Chris

3.7233 huy hiệu vàng18 Huy hiệu bạc49 Huy hiệu đồng3 gold badges18 silver badges49 bronze badges

Đã hỏi ngày 14 tháng 6 năm 2017 lúc 15:19Jun 14, 2017 at 15:19

Điều này sẽ làm công việc:

df = df.dropna[how='any',axis=0] 

Nó sẽ xóa mỗi hàng [trục = 0] có giá trị "bất kỳ" null nào trong đó.

EXAMPLE:

#Recreate random DataFrame with Nan values
df = pd.DataFrame[index = pd.date_range['2017-01-01', '2017-01-10', freq='1d']]
# Average speed in miles per hour
df['A'] = np.random.randint[low=198, high=205, size=len[df.index]]
df['B'] = np.random.random[size=len[df.index]]*2

#Create dummy NaN value on 2 cells
df.iloc[2,1]=None
df.iloc[5,0]=None

print[df]
                A         B
2017-01-01  203.0  1.175224
2017-01-02  199.0  1.338474
2017-01-03  198.0       NaN
2017-01-04  198.0  0.652318
2017-01-05  199.0  1.577577
2017-01-06    NaN  0.234882
2017-01-07  203.0  1.732908
2017-01-08  204.0  1.473146
2017-01-09  198.0  1.109261
2017-01-10  202.0  1.745309

#Delete row with dummy value
df = df.dropna[how='any',axis=0]

print[df]

                A         B
2017-01-01  203.0  1.175224
2017-01-02  199.0  1.338474
2017-01-04  198.0  0.652318
2017-01-05  199.0  1.577577
2017-01-07  203.0  1.732908
2017-01-08  204.0  1.473146
2017-01-09  198.0  1.109261
2017-01-10  202.0  1.745309

Xem tài liệu tham khảo để biết thêm chi tiết.

Nếu mọi thứ đều ổn với DataFrame của bạn, việc bỏ Nans sẽ dễ dàng như vậy. Nếu điều này vẫn chưa hoạt động, hãy đảm bảo bạn có các kiểu dữ liệu thích hợp được xác định cho cột của bạn [pd.to_numeric xuất hiện trong tâm trí ...]

Đã trả lời ngày 14 tháng 6 năm 2017 lúc 15:30Jun 14, 2017 at 15:30

1

---- rõ ràng null tất cả colum -------

df = df.dropna[how='any',axis=0]

--- Nếu bạn muốn làm sạch null bằng cách dựa trên 1 cột .---based on 1 column.---

df[~df['B'].isnull[]]
                A         B
2017-01-01  203.0  1.175224
2017-01-02  199.0  1.338474
                              **2017-01-03  198.0       NaN** clean
2017-01-04  198.0  0.652318
2017-01-05  199.0  1.577577
2017-01-06    NaN  0.234882
2017-01-07  203.0  1.732908
2017-01-08  204.0  1.473146
2017-01-09  198.0  1.109261
2017-01-10  202.0  1.745309

Xin hãy tha thứ cho bất kỳ sai lầm.

Đã trả lời ngày 23 tháng 7 năm 2019 lúc 8:22Jul 23, 2019 at 8:22

NaretsnaretsNarets

1511 Huy hiệu bạc5 Huy hiệu đồng1 silver badge5 bronze badges

2

Để xóa tất cả các giá trị null phương thức dropna [] sẽ hữu ích

df.dropna[inplace=True]

Để loại bỏ, loại bỏ có chứa giá trị null của cụ thể, sử dụng mã này

df.dropna[subset=['column_name_to_remove'], inplace=True]

Đã trả lời ngày 20 tháng 8 năm 2020 lúc 12:13Aug 20, 2020 at 12:13

Có vẻ như giá trị trong cột của bạn là "null" và không phải là một nan thực sự, đó là những gì Dropna có nghĩa là. Vì vậy, tôi sẽ thử:

df[df.BBD != 'null']

Hoặc, nếu giá trị thực sự là một nan thì

df[pd.notnull[df.BBD]]

Đã trả lời ngày 3 tháng 6 năm 2019 lúc 16:44Jun 3, 2019 at 16:44

Tôi khuyên bạn nên thử một trong hai dòng này:

df = df.dropna[how='any',axis=0] 
0

Đã trả lời ngày 14 tháng 3 năm 2021 lúc 2:22Mar 14, 2021 at 2:22

DannydannyDanny

256 huy hiệu đồng6 bronze badges

Bài Viết Liên Quan

Chủ Đề