Mon Dataframe ressemble à ci-dessous
ID,FirstName,LastName
1,Navee,Srikanth
2,,Srikanth
3,Naveen,
Maintenant, mon énoncé de problème est que je dois supprimer la ligne numéro 2 car le prénom est nul.
J'utilise ci-dessous le script pyspark
join_Df1= Name.filter(Name.col(FirstName).isnotnull()).show()
Je reçois une erreur
File "D:\0\NameValidation.py", line 13, in <module>
join_Df1= filter(Name.FirstName.isnotnull()).show()
TypeError: l'objet 'Column' n'est pas appelable
Quelqu'un peut-il m'aider à résoudre ce problème
Il semble que votre DataFrame FirstName ait une valeur vide à la place Null
. Voici quelques options à essayer: -
df = sqlContext.createDataFrame([[1,'Navee','Srikanth'], [2,'','Srikanth'] , [3,'Naveen','']], ['ID','FirstName','LastName'])
df.show()
+---+---------+--------+
| ID|FirstName|LastName|
+---+---------+--------+
| 1| Navee|Srikanth|
| 2| |Srikanth|
| 3| Naveen| |
+---+---------+--------+
df.where(df.FirstName.isNotNull()).show() #This doen't remove null because df have empty value
+---+---------+--------+
| ID|FirstName|LastName|
+---+---------+--------+
| 1| Navee|Srikanth|
| 2| |Srikanth|
| 3| Naveen| |
+---+---------+--------+
df.where(df.FirstName != '').show()
+---+---------+--------+
| ID|FirstName|LastName|
+---+---------+--------+
| 1| Navee|Srikanth|
| 3| Naveen| |
+---+---------+--------+
df.filter(df.FirstName != '').show()
+---+---------+--------+
| ID|FirstName|LastName|
+---+---------+--------+
| 1| Navee|Srikanth|
| 3| Naveen| |
+---+---------+--------+
df.where("FirstName != ''").show()
+---+---------+--------+
| ID|FirstName|LastName|
+---+---------+--------+
| 1| Navee|Srikanth|
| 3| Naveen| |
+---+---------+--------+
Vous devriez faire comme ci-dessous
join_Df1.filter(join_Df1.FirstName.isNotNull()).show
J'espère que cela t'aides!
Je pense que vous pourriez avoir besoin de cette notnull()
.
Voici donc votre entrée dans le fichier csv my_test.csv
:
ID,FirstName,LastName
1,Navee,Srikanth
2,,Srikanth
3,Naveen
Le code:
import pandas as pd
df = pd.read_csv("my_test.csv")
print(df[df['FirstName'].notnull()])
production:
ID FirstName LastName
0 1 Navee Srikanth
2 3 Naveen NaN
Voilà ce que vous aimeriez! df[df['FirstName'].notnull()]
sortie de df['FirstName'].notnull()
:
0 True
1 False
2 True
Cela crée une trame de données df
où df['FirstName'].notnull()
renvoie True
Comment cela est-il vérifié? df['FirstName'].notnull()
Si la valeur de la colonne FirstName
n'est pas nulle, retourne True
sinon si NaN
est présente, retourne False
.