Hướng dẫn how to remove nan values from dictionary in python - cách xóa các giá trị nan khỏi từ điển trong python

Tôi có một từ điển chứa đầy dữ liệu từ hai tệp tôi đã nhập, nhưng một số dữ liệu được phát hành dưới dạng NAN. Làm cách nào để loại bỏ các phần dữ liệu với NAN?

Mã của tôi là:

import matplotlib.pyplot as plt from pandas.lib import Timestamp import numpy as np from datetime import datetime import pandas as pd import collections orangebook = pd.read_csv('C:\Users\WEGWEIS_JAKE\Desktop\Work Programs\Code Files\products2.txt',sep='~', parse_dates=['Approval_Date']) specificdrugs=pd.read_csv('C:\Users\WEGWEIS_JAKE\Desktop\Work Programs\Code Files\Drugs.txt',sep=',') """This is a dictionary that collects data from the .txt file This dictionary has a key,value pair for every generic name with its corresponding approval date """ drugdict={} for d in specificdrugs['Generic Name']: drugdict.dropna() drugdict[d]=orangebook[orangebook.Ingredient==d.upper()]['Approval_Date'].min()

Tôi nên thêm hoặc lấy đi từ mã này để đảm bảo rằng không có khóa, giá trị nào trong từ điển với giá trị của NAN?

Đã hỏi ngày 5 tháng 6 năm 2014 lúc 19:09Jun 5, 2014 at 19:09

2

from math import isnan

Nếu Nans đang được lưu trữ dưới dạng chìa khóa:

# functional clean_dict = filter(lambda k: not isnan(k), my_dict) # dict comprehension clean_dict = {k: my_dict[k] for k in my_dict if not isnan(k)}

Nếu NAN đang được lưu trữ dưới dạng giá trị:

# functional clean_dict = filter(lambda k: not isnan(my_dict[k]), my_dict) # dict comprehension clean_dict = {k: my_dict[k] for k in my_dict if not isnan(my_dict[k])}

Đã trả lời ngày 5 tháng 6 năm 2014 lúc 19:19Jun 5, 2014 at 19:19

Twinlakestwinlakestwinlakes

8,5905 Huy hiệu vàng29 Huy hiệu bạc38 Huy hiệu đồng5 gold badges29 silver badges38 bronze badges

2

Với SimpleJson

import simplejson clean_dict = simplejson.loads(simplejson.dumps(my_dict, ignore_nan=True)) ## or depending on your needs clean_dict = simplejson.loads(simplejson.dumps(my_dict, allow_nan=False))

Đã trả lời ngày 3 tháng 4 năm 2017 lúc 19:03Apr 3, 2017 at 19:03

Hangchangchangc

4.0909 Huy hiệu vàng32 Huy hiệu bạc59 Huy hiệu Đồng9 gold badges32 silver badges59 bronze badges

1

Thay vì cố gắng loại bỏ NAN khỏi từ điển của bạn, bạn nên điều tra thêm lý do tại sao Nans lại đến đó ngay từ đầu.

Thật khó để sử dụng Nans trong một từ điển, vì một NAN không bằng chính nó.

Kiểm tra điều này để biết thêm thông tin: Nans làm chìa khóa trong từ điển

Đã trả lời ngày 5 tháng 6 năm 2014 lúc 19:12Jun 5, 2014 at 19:12

Greg Hilstongreg HilstonGreg Hilston

2.3092 Huy hiệu vàng23 Huy hiệu bạc31 Huy hiệu Đồng2 gold badges23 silver badges31 bronze badges

Một phiên bản được sửa đổi một chút của cách tiếp cận của Twinlakes sẽ là sử dụng chức năng pandas.isna () như sau: Nếu Nans đang được lưu trữ dưới dạng khóa:

# functional clean_dict = filter(lambda k: not pd.isna(k), my_dict) # dict comprehension clean_dict = {k: my_dict[k] for k in my_dict if not pd.isna(k)}

Nếu NAN đang được lưu trữ dưới dạng giá trị:

# functional clean_dict = filter(lambda k: not pd.isna(my_dict[k]), my_dict) # dict comprehension clean_dict = {k: my_dict[k] for k in my_dict if not pd.isna(my_dict[k])}

Đã trả lời ngày 5 tháng 6 năm 2014 lúc 19:19

TwinlakestwinlakesApr 30 at 23:57

8,5905 Huy hiệu vàng29 Huy hiệu bạc38 Huy hiệu đồngRaghul Raj M

Với SimpleJson8 silver badges24 bronze badges

Đã trả lời ngày 3 tháng 4 năm 2017 lúc 19:03

orangebook = pd.read_csv('C:\Users\WEGWEIS_JAKE\Desktop\Work Programs\Code Files\products2.txt',sep='~', parse_dates=['Approval_Date']).dropna()

Hangchangc

orangebook = pd.read_csv('C:\Users\WEGWEIS_JAKE\Desktop\Work Programs\Code Files\products2.txt',sep='~', parse_dates=['Approval_Date']).dropna().to_dict()

4.0909 Huy hiệu vàng32 Huy hiệu bạc59 Huy hiệu ĐồngDec 16, 2019 at 13:08

Thay vì cố gắng loại bỏ NAN khỏi từ điển của bạn, bạn nên điều tra thêm lý do tại sao Nans lại đến đó ngay từ đầu.Colin Miles

Thật khó để sử dụng Nans trong một từ điển, vì một NAN không bằng chính nó.4 silver badges5 bronze badges

1

Nan trong từ điển Python là gì?

NAN là viết tắt của không phải là một số và là một trong những cách phổ biến để thể hiện giá trị bị thiếu trong dữ liệu.Nó là một giá trị điểm nổi đặc biệt và không thể được chuyển đổi sang bất kỳ loại nào khác ngoài Float.Not A Number and is one of the common ways to represent the missing value in the data. It is a special floating-point value and cannot be converted to any other type than float.

Chúng ta có thể xóa các giá trị trong python từ điển không?

Từ khóa DEL có thể được sử dụng để xóa tại chỗ xóa khóa có trong từ điển trong Python..

Python có bỏ qua nan không?

Hàm Python Numpy Nanmean () được sử dụng để tính toán trung bình số học hoặc trung bình của mảng bỏ qua giá trị NAN.Nếu mảng có giá trị NAN và chúng ta có thể tìm ra mức trung bình mà không bị ảnh hưởng bởi giá trị NAN.Trung bình/trung bình được lấy qua mảng phẳng theo mặc định, nếu không thì trên trục được chỉ định.. If the array has a NaN value and we can find out the average without being influenced by the NaN value. The mean/average is taken over the flattened array by default, otherwise over the specified axis.

Chủ đề