重新评估NaN的现有数据帧

2024-06-24 12:53:14 发布

您现在位置:Python中文网/ 问答频道 /正文

使用read_csv()创建数据帧时,类na值(如字符串“na”)强制为NaN。在下面的示例中,我改为在dict上使用dataframe()创建一个dataframe,并保留字符串'NA'。如何重新计算这个数据帧,以便将这个(以及任何其他类似na的值)转换为NaN?你知道吗

from collections import OrderedDict
test = OrderedDict([('totalSize', 82142),
             ('done', True),
             ('records',
              [OrderedDict([('Name', 'ASST SANTI PAOLO E CARLO'),
                            ('BillingStreet', 'NA'),
                            ('BillingCity', 'MILANO'),
                            ('BillingState', 'MI'),
                            ('BillingPostalCode', '20142'),
                            ('BillingCountry', 'ITALY')]),
               OrderedDict([('Name',
                             'A O UNIVERSITARIA OSPEDALI RIUNITI TRIESTE'),
                            ('BillingStreet', 'VIA FARNETO 3'),
                            ('BillingCity', 'TRIESTE'),
                            ('BillingState', None),
                            ('BillingPostalCode', '34142'),
                            ('BillingCountry', 'ITALY')])])])
testdf = pd.DataFrame(test['records'])

Tags: 数据字符串nametestdataframenanordereddictna
3条回答

使用numpy库并将其转换为NAN,如下所示。你知道吗

import numpy as np
testdf.replace('NA', np.nan)

一种方法是在创建数据帧后将所有“NA”字符串强制转换为None:

# add as many strings that you would want converted
na_replace = {
    'NA': None # or whatever null value you want
}

pd.DataFrame(test['records']).replace(na_replace)

变身熊猫后有多种途径

df=df.mask(df.isin(['NA','N/A','na']))
df=df.replace(['NA','N/A','na'],np.nan)

相关问题 更多 >