条件を満たす列を選択してください

Sofiane Cherchalli

私はツェッペリンで次のノートブックを実行しています:

%spark.pyspark
l = [('user1', 33, 1.0, 'chess'), ('user2', 34, 2.0, 'tenis'), ('user3', None, None, ''), ('user4', None, 4.0, '   '), ('user5', None, 5.0, 'ski')]
df = spark.createDataFrame(l, ['name', 'age', 'ratio', 'hobby'])
df.show()

root
 |-- name: string (nullable = true)
 |-- age: long (nullable = true)
 |-- ratio: double (nullable = true)
 |-- hobby: string (nullable = true)
+-----+----+-----+-----+
| name| age|ratio|hobby|
+-----+----+-----+-----+
|user1|  33|  1.0|chess|
|user2|  34|  2.0|tenis|
|user3|null| null|     |
|user4|null|  4.0|     |
|user5|null|  5.0|  ski|
+-----+----+-----+-----+

agg_df = df.select(*[(1.0 - (count(c) / count('*'))).alias(c) for c in df.columns])
agg_df.show()

root
 |-- name: string (nullable = true)
 |-- age: long (nullable = true)
 |-- ratio: double (nullable = true)
 |-- hobby: string (nullable = true)
+----+---+-------------------+-----+
|name|age|              ratio|hobby|
+----+---+-------------------+-----+
| 0.0|0.6|0.19999999999999996|  0.0|
+----+---+-------------------+-----+

ここで、agg_dfで、値が0.35未満の列のみを選択したいと思います。この場合、['name'、 'ratio'、 'hobby']を返す必要があります。

どうすればいいのかわからない。ヒントはありますか?

ローグワン

あなたは0.35未満の値を意味しますか?これはする必要があります

>>> [ key for (key,value) in agg_df.collect()[0].asDict().items() if value < 0.35  ]
['hobby', 'ratio', 'name']

空の文字列をNullに置き換えるには、次のudf関数を使用します。

from pyspark.sql.functions import udf
process = udf(lambda x: None if not x else (x if x.strip() else None))
df.withColumn('hobby', process(df.hobby)).show()
+-----+----+-----+-----+
| name| age|ratio|hobby|
+-----+----+-----+-----+
|user1|  33|  1.0|chess|
|user2|  34|  2.0|tenis|
|user3|null| null| null|
|user4|null|  4.0| null|
|user5|null|  5.0|  ski|
+-----+----+-----+-----+

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

条件を満たす行を選択してください

分類Dev

別の条件を満たす配列内の値を選択してください

分類Dev

少なくとも1回は条件を満たすすべてのグループを選択してください

分類Dev

常にajaxでelse条件を選択してください

分類Dev

条件に一致する値のみを選択してください

分類Dev

IDを持たない要素を選択してください

分類Dev

GROUPBY句にない列を選択してください

分類Dev

条件が指定されていない行を選択してください

分類Dev

別の列が特定の条件を満たさない場合は、1つの列の値を選択します

分類Dev

いくつかの条件が満たされる前にn個の最後の要素を選択します

分類Dev

条件を満たす配列内の要素を選択します

分類Dev

条件は、MySQLで満たされている場合に選択し、同時にUPDATEを行います

分類Dev

条件が満たされている場合は、6行上に移動し、Rの値を選択します

分類Dev

有効な選択肢を選択してくださいModelChoiceField

分類Dev

条件文から真の値のみを選択してください

分類Dev

別の表で条件別に製品を選択してください

分類Dev

さまざまなレコードで多くの条件を満たす列を選択する

分類Dev

INNER JOINを使用する場合は、すべての列を選択してください

分類Dev

要素数が制限された配列のドキュメントを1つ選択してください

分類Dev

文字列内に値を含む行を選択してください

分類Dev

パンダ:NaNでない列を選択してください

分類Dev

文字列で始まらないクラスを選択してください

分類Dev

sql:名前全体がわからない列を選択してください

分類Dev

別の列の値を含むものをすべて選択してください

分類Dev

個別の列を保存する最大値を持つ行を選択してください

分類Dev

長いテキストまたは短いテキストの列を選択し、長さが100を超える場合はテキストを切り取り、100未満の場合はスペースを追加して正確に100にする方法を教えてください。

分類Dev

特定の番号を持つものをすべて選択してください

分類Dev

数字が続く文字のみを選択してください

分類Dev

ダブルクリックする前に選択したセルを覚えておいてください

Related 関連記事

  1. 1

    条件を満たす行を選択してください

  2. 2

    別の条件を満たす配列内の値を選択してください

  3. 3

    少なくとも1回は条件を満たすすべてのグループを選択してください

  4. 4

    常にajaxでelse条件を選択してください

  5. 5

    条件に一致する値のみを選択してください

  6. 6

    IDを持たない要素を選択してください

  7. 7

    GROUPBY句にない列を選択してください

  8. 8

    条件が指定されていない行を選択してください

  9. 9

    別の列が特定の条件を満たさない場合は、1つの列の値を選択します

  10. 10

    いくつかの条件が満たされる前にn個の最後の要素を選択します

  11. 11

    条件を満たす配列内の要素を選択します

  12. 12

    条件は、MySQLで満たされている場合に選択し、同時にUPDATEを行います

  13. 13

    条件が満たされている場合は、6行上に移動し、Rの値を選択します

  14. 14

    有効な選択肢を選択してくださいModelChoiceField

  15. 15

    条件文から真の値のみを選択してください

  16. 16

    別の表で条件別に製品を選択してください

  17. 17

    さまざまなレコードで多くの条件を満たす列を選択する

  18. 18

    INNER JOINを使用する場合は、すべての列を選択してください

  19. 19

    要素数が制限された配列のドキュメントを1つ選択してください

  20. 20

    文字列内に値を含む行を選択してください

  21. 21

    パンダ:NaNでない列を選択してください

  22. 22

    文字列で始まらないクラスを選択してください

  23. 23

    sql:名前全体がわからない列を選択してください

  24. 24

    別の列の値を含むものをすべて選択してください

  25. 25

    個別の列を保存する最大値を持つ行を選択してください

  26. 26

    長いテキストまたは短いテキストの列を選択し、長さが100を超える場合はテキストを切り取り、100未満の場合はスペースを追加して正確に100にする方法を教えてください。

  27. 27

    特定の番号を持つものをすべて選択してください

  28. 28

    数字が続く文字のみを選択してください

  29. 29

    ダブルクリックする前に選択したセルを覚えておいてください

ホットタグ

アーカイブ