Jwe*_*s32 6 python dictionary nan
我有一个字典,里面填充了我导入的两个文件的数据,但有些数据是以nan形式出现的.如何使用nan删除数据?
我的代码是:
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()
Run Code Online (Sandbox Code Playgroud)
我应该添加或删除此代码以确保字典中没有值为nan的键值对?
twi*_*kes 17
from math import isnan
Run Code Online (Sandbox Code Playgroud)
如果nans被存储为键:
# 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)}
Run Code Online (Sandbox Code Playgroud)
如果将nans存储为值:
# 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])}
Run Code Online (Sandbox Code Playgroud)
使用 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))
Run Code Online (Sandbox Code Playgroud)
您不应该尝试从字典中删除 NaN,而应该进一步调查 NaN 出现的原因。
在字典中使用 NaN 变得很困难,因为 NaN 不等于其自身。
查看此以获取更多信息:NaNs as key in dictionaries
| 归档时间: |
|
| 查看次数: |
14259 次 |
| 最近记录: |