मेरा प्रश्न इससे संबंधित है एक. मेरे पास region के मान के रूप में 'NA' के साथ 'test.csv' नाम की एक फ़ाइल है। मैं इसे 'एनए' के ​​रूप में पढ़ना चाहता हूं, न कि 'एनएएन' के रूप में। हालांकि, test.csv में अन्य कॉलम में लापता मान हैं, जिन्हें मैं 'NaN' के रूप में बनाए रखना चाहता हूं। मैं यह कैसे कर सकता हूँ?

# test.csv looks like this:

enter image description here

मैंने जो कोशिश की है वह यहां है:

import pandas as pd
# This reads NA as NaN
df = pd.read_csv(test.csv)
df
    region  date    expenses
0   NaN   1/1/2019  53
1   EU    1/2/2019  NaN

# This reads NA as NA, but doesn't read missing expense as NaN
df = pd.read_csv('test.csv', keep_default_na=False, na_values='_')
df
    region  date    expenses
0   NA    1/1/2019  53
1   EU    1/2/2019  

# What I want:
    region  date    expenses
0   NA    1/1/2019  53
1   EU    1/2/2019  NaN

तर्क जोड़ने में समस्या keep_default_na=False है कि expenses के लिए दूसरा मान NaN के रूप में पढ़ा नहीं जाता है। तो अगर मैं pd.isnull(df['value'][1]) कोशिश करता हूं तो इसे False के रूप में वापस कर दिया जाता है।

3
Gaurav Bansal 23 अक्टूबर 2019, 19:57

2 जवाब

सबसे बढ़िया उत्तर

मेरे लिए, यह काम करता है:

df = pd.read_csv('file.csv', keep_default_na=False, na_values=[''])

जो देता है:

  region      date  expenses
0     NA  1/1/2019      53.0
1     EU  1/2/2019       NaN

लेकिन मैं अन्य कॉलमों में संभावित अन्य NaN के कारण सुरक्षित खेलना पसंद करूंगा, और करता हूं

df = pd.read_csv('file.csv')
df['region'] = df['region'].fillna('NA')
2
Quang Hoang 23 अक्टूबर 2019, 20:15

keep_default=False निर्दिष्ट करते समय सभी डिफ़ॉल्ट मानों को नान के रूप में नहीं माना जाता है, इसलिए आपको उन्हें निर्दिष्ट करना चाहिए:

keep_default_na=False, na_values= [‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’, ‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘N/A’, ‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’] का उपयोग करें

0
Benoit de Menthière 23 अक्टूबर 2019, 20:02