Puede que se de el caso de que halles algún fallo en tu código o proyecto, recuerda probar siempre en un ambiente de testing antes añadir el código al proyecto final.
Solución:
Puedes usar df.na.fill
para reemplazar nulos con ceros, por ejemplo:
>>> df = spark.createDataFrame([(1,), (2,), (3,), (None,)], ['col'])
>>> df.show()
+----+
| col|
+----+
| 1|
| 2|
| 3|
|null|
+----+
>>> df.na.fill(0).show()
+---+
|col|
+---+
| 1|
| 2|
| 3|
| 0|
+---+
Puede usar la función fillna().
>>> df = spark.createDataFrame([(1,), (2,), (3,), (None,)], ['col'])
>>> df.show()
+----+
| col|
+----+
| 1|
| 2|
| 3|
|null|
+----+
>>> df = df.fillna('col':'4')
>>> df.show()
or df.fillna('col':'4').show()
+---+
|col|
+---+
| 1|
| 2|
| 3|
| 4|
+---+
Usando fillna
hay 3 opciones…
Documentación:
def fillna(self, value, subset=None): """Replace null values, alias for ``na.fill()``. :func:`DataFrame.fillna` and :func:`DataFrameNaFunctions.fill` are aliases of each other. :param value: int, long, float, string, bool or dict. Value to replace null values with. If the value is a dict, then `subset` is ignored and `value` must be a mapping from column name (string) to replacement value. The replacement value must be an int, long, float, boolean, or string. :param subset: optional list of column names to consider. Columns specified in subset that do not have matching data type are ignored. For example, if `value` is a string, and subset contains a non-string column, then the non-string column is simply ignored.
Así que puedes:
- llenar todas las columnas con el mismo valor:
df.fillna(value)
- pasar un diccionario de columna -> valor:
df.fillna(dict_of_col_to_value)
- pasar una lista de columnas para llenar con el mismo valor:
df.fillna(value, subset=list_of_cols)
fillna()
es un alias para na.fill()
pues son iguales.
Calificaciones y reseñas
Eres capaz de añadir valor a nuestro contenido asistiendo con tu veteranía en los informes.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)