Fréquence relative Scala

cronoik

J'ai un objet dataframe qui ressemble à:

+--+----+----+----+----+----+----+----+----+----+-----+ 
|id|bin1|bin2|bin3|bin4|bin5|bin6|bin7|bin8|bin9|bin10|
+--+----+----+----+----+----+----+----+----+----+-----+
|a |   1|null|null|null|null|   1|  14|  91| 929| null|
|c |   4|   2|   5|  82|  49| 176| 222| 439|null| null|
|f |   1|   1|null|null|   2|   8| 226| 294|   2| null|
|e |null|   1|   2|null|   4|  13|  19| 242| 752|    1|
|y |   1|   1|   3|   9|  11|  17| 136| 664| 338| null|
|e |   4|   2|   1|   8|  14| 169| 952| 431|null| null|

Comment puis-je remplacer les valeurs absolues par des valeurs relatives (fréquence)?

Edit: Après la transformation, l'objet dataframe de la première ligne doit ressembler à ceci:

+--+----+----+----+----+----+----+-----+------+-----+-----+ 
|id|bin1|bin2|bin3|bin4|bin5|bin6|bin7 |bin8  |bin9 |bin10|
+--+----+----+----+----+----+----+-----+------+-----+-----+
|a | 0.0|null|null|null|null| 0.0| 0.01|  0.09| 0.90| null|

L'algorithme doit diviser chaque valeur d'une cellule par la somme de la ligne. Après cette transformation, la somme d'une ligne est toujours 1.

Je pense que je peux y parvenir avec la carte mais je ne sais pas comment le faire.

evan.oman

En supposant que vous vouliez que les nulls soient traités comme des 0, voici une solution:

scala> var df = Seq((1d,2d,Double.NaN),(Double.NaN, 3d,4d), (5d, Double.NaN, 6d)).toDF("a", "b", "c")
df: org.apache.spark.sql.DataFrame = [a: double, b: double, c: double]

scala> df.show
+---+---+---+
|  a|  b|  c|
+---+---+---+
|1.0|2.0|NaN|
|NaN|3.0|4.0|
|5.0|NaN|6.0|
+---+---+---+

scala> val cols = df.columns
cols: Array[String] = Array(a, b, c)

scala> import org.apache.spark.sql.DataFrameNaFunctions

scala> df = df.na.fill(0d).withColumn("sum", cols.map(col).reduce(_ + _))
df: org.apache.spark.sql.DataFrame = [a: double, b: double, c: double, sum: double]

scala> df.show
+---+---+---+----+
|  a|  b|  c| sum|
+---+---+---+----+
|1.0|2.0|0.0| 3.0|
|0.0|3.0|4.0| 7.0|
|5.0|0.0|6.0|11.0|
+---+---+---+----+


scala> cols.foreach( cName => df = df.withColumn(cName, df.col(cName) / df.col("sum")))

scala> df.drop("sum").show
+-------------------+-------------------+------------------+
|                  a|                  b|                 c|
+-------------------+-------------------+------------------+
| 0.3333333333333333| 0.6666666666666666|               0.0|
|                0.0|0.42857142857142855|0.5714285714285714|
|0.45454545454545453|                0.0|0.5454545454545454|
+-------------------+-------------------+------------------+

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Fréquence relative de la paire de mots dans scala

Fréquence relative avec sortie inattendue dplyr

Seaborn: distplot () avec fréquence relative

Histogramme de fréquence relative dans R, ggplot

Matrice de fréquence relative de terme de CountVectorizer

Comment faire une distribution normale de fréquence relative ?

Trouvez la valeur qui se produit le plus fréquemment et indiquez la fréquence relative

Scala: fréquence des caractères dans une liste

Convertir plusieurs colonnes en fréquence relative par groupe dans R dplyr

Quanteda changeant la fréquence relative d'un terme au fil du temps

Comment créer un histogramme de fréquence relative dans matlab?

Tracer la fréquence relative de chaque élément unique d'un dataframe

R mute pour calculer la fréquence relative d'occurrence au sein des groupes

R : données catégorielles de fréquence relative dans ggplot2

colonne hist en fonction de la fréquence relative de l'autre colonne (R)

Marquer une fréquence relative inférieure à une valeur seuil comme valeur aberrante en Python

Remplacez efficacement les valeurs de la colonne dataframe par une fréquence relative dans R

Comment ajouter la fréquence relative dans un diagramme en mosaïque dans R?

Visualisation de la fréquence relative dans R / ggplot2

Définir un nombre différent d'intervalles dans hist avec une fréquence relative

Superposition de la courbe de «densité» sur l'histogramme où l'axe vertical est la fréquence (aka nombre) ou la fréquence relative?

compter la fréquence des caractères dans la chaîne avec scala

En utilisant R, comment créer un histogramme avec une fréquence relative sur l'axe vertical ?

compter une variable y pour chaque variable x dans un DataFrame et également ajouter la fréquence relative

R: Comment puis-je convertir une trame de données en valeurs de fréquence relative pour chaque colonne?

R & ggplot2 - Comment tracer la fréquence relative d'une division catégorielle par une variable binaire

R: Fonction de construction pour calculer le pourcentage de fréquence relative et les appliquer sur toutes les colonnes

Créer un graphique à barres avec une fréquence relative / à partir d'un objet de table dans R

Existe-t-il un moyen plus simple de représenter graphiquement un histogramme de fréquence relative

TOP liste

  1. 1

    Microsoft.WebApplication.targets

  2. 2

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  3. 3

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  4. 4

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  5. 5

    Passer la taille d'un tableau 2D à une fonction ?

  6. 6

    Exporter la table de l'arborescence vers CSV avec mise en forme

  7. 7

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  8. 8

    Créer un système Buzzer à l'aide de python

  9. 9

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  10. 10

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  11. 11

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  12. 12

    CSS: before ne fonctionne pas sur certains éléments,: after fonctionne très bien

  13. 13

    Conversion double en BigDecimal en Java

  14. 14

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  15. 15

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  16. 16

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  17. 17

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  18. 18

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  19. 19

    comment afficher un bouton au-dessus d'un autre élément ?

  20. 20

    Comment activer le message Pylint "too-many-locals" dans VS Code?

  21. 21

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

chaudétiquette

Archive