2017-07-27 1 views
0

J'ai une grande feuille de calcul Excel que j'essaie d'analyser en Python2.7 et pandas 0.19.1 pour insérer les données dans une base de données MySQL. Dans le cadre de cela, certaines des cellules contiennent la chaîne "N/A". Malheureusement, les pandas ne semblent pas capables d'analyser "N/A", mais ils importent nan. En incluant des guillemets simples ou doubles autour de la chaîne, les pandas l'importent en tant que "" N/A "" et "N/A" respectivement, et ne correspondent pas à mes données.Impossible d'analyser la chaîne "N/A" à partir de .XLSX dans Python 2.7 avec pandas

Y at-il un moyen de lire la chaîne "N/A" sans modifier les données existantes?

MWE suit, y compris le lien vers le fichier de données de test sur GitHub:

import pandas as pd 
loadData = pd.ExcelFile("testData.xlsx") 
testData = loadData.parse("Sheet1") 

for row in testData.itertuples(index=True, name='testTuple'):  
    if getattr(row, "Value") == "N/A": 
     print(row) 

Lien pour tester fichier de données: https://github.com/quacksawbones/testData/blob/master/testData.xlsx

(NB:. Première question sur StackOverflow S'il vous plaît laissez-moi savoir si je l'ai manqué quelque chose ou besoin d'informations)

Répondre

0

Selon mon comprendre votre question que vous voulez remplacer NaN avec « N/A », si vous voulez cela, vous pouvez utiliser fillna méthode,

df=df.fillna('N/A') 

Si cela ne vous me nécessaire expliquer clairement ce que vous voulez ....

+0

Salut Mohamed, J'espérais pouvoir lire « N/A » directement de ma feuille de calcul et l'ont interprété comme une chaîne "N/A" plutôt que NaN. Mais je pense que je pourrais utiliser cela comme une solution de contournement. Merci mon pote :) –