根據(jù)PySpark或Pandas中的垂直(非水平)平均值或總和篩選DataFrame的列(非行)

data = [[12, 112, 14],
        [120, 112, 114],
        [88, 92, 74],
        [17, 118, 133],
        [19, 19, 14],
        [11, 12, 14]]
columns = ['Subject_1', 'Subject_2', 'Subject_3']
dataframe = spark.createDataFrame(data, columns)
dataframe.show()
# +---------+---------+---------+
# |Subject_1|Subject_2|Subject_3|
# +---------+---------+---------+
# |       12|      112|       14|
# |      120|      112|      114|
# |       88|       92|       74|
# |       17|      118|      133|
# |       19|       19|       14|
# |       11|       12|       14|
# +---------+---------+---------+

考慮一下,一所學(xué)校只想在表現(xiàn)最好的地方發(fā)布學(xué)科。

如何擁有一個DF2,使DF2只有dataframe中的幾列,這樣主題:

平均分?jǐn)?shù)大于閾值

鑒于科目太多,平均分?jǐn)?shù)為75分及以上

按平均分?jǐn)?shù)的升序?qū)α羞M(jìn)行排序

考慮PySpark和Pandas DataFrame。

? 最佳回答:

使用這個dataframe.。。

from pyspark.sql import functions as F
data = [[12, 112, 14, 15, 100],
        [120, 112, 114, 17, 87],
        [88, 92, 74, 76, 11],
        [17, 118, 133, 99, 51],
        [19, 19, 14, 54, 48],
        [11, 12, 14, 75, 60]]
columns = ['Subject_1', 'Subject_2', 'Subject_3', 'Subject_4', 'Subject_5']
df = spark.createDataFrame(data, columns)

這就是平均值的樣子:

df_avg = df.agg(*[F.avg(c).alias(c) for c in df.columns])
df_avg.show()
# +---------+---------+---------+---------+---------+
# |Subject_1|Subject_2|Subject_3|Subject_4|Subject_5|
# +---------+---------+---------+---------+---------+
# |     44.5|     77.5|     60.5|     56.0|     59.5|
# +---------+---------+---------+---------+---------+

按平均分?jǐn)?shù)的升序?qū)α羞M(jìn)行排序

d = df.agg(*[F.avg(c).alias(c) for c in df.columns]).head().asDict()
df = df.select(*sorted(d, key=d.get, reverse=False))
df.show()
# +---------+---------+---------+---------+---------+
# |Subject_1|Subject_4|Subject_5|Subject_3|Subject_2|
# +---------+---------+---------+---------+---------+
# |       12|       15|      100|       14|      112|
# |      120|       17|       87|      114|      112|
# |       88|       76|       11|       74|       92|
# |       17|       99|       51|      133|      118|
# |       19|       54|       48|       14|       19|
# |       11|       75|       60|       14|       12|
# +---------+---------+---------+---------+---------+

平均分?jǐn)?shù)大于閾值

threshold = 58
d = df.agg(*[F.avg(c).alias(c) for c in df.columns]).head().asDict()
df = df.select([k for k, v in d.items() if v >= threshold])
df.show()
# +---------+---------+---------+
# |Subject_2|Subject_3|Subject_5|
# +---------+---------+---------+
# |      112|       14|      100|
# |      112|      114|       87|
# |       92|       74|       11|
# |      118|      133|       51|
# |       19|       14|       48|
# |       12|       14|       60|
# +---------+---------+---------+

平均分?jǐn)?shù)為75分及以上

import numpy as np

d = df.agg(*[F.avg(c).alias(c) for c in df.columns]).head().asDict()
perc_75 = np.percentile(list(d.values()), 75)
df = df.select([k for k, v in d.items() if v >= perc_75])
df.show()
# +---------+---------+
# |Subject_2|Subject_3|
# +---------+---------+
# |      112|       14|
# |      112|      114|
# |       92|       74|
# |      118|      133|
# |       19|       14|
# |       12|       14|
# +---------+---------+

Pandas:

按平均分?jǐn)?shù)的升序?qū)α羞M(jìn)行排序

df[df.mean().sort_values(ascending=True).index]

平均分?jǐn)?shù)大于閾值

threshold = 58
df[df.mean()[lambda x: x >= threshold].index]

平均分?jǐn)?shù)為75分及以上

perc_75 = df.mean().quantile(.75)
df[df.mean()[lambda x: x >= perc_75].index]
主站蜘蛛池模板: 在线视频一区二区日韩国产| 国产一区二区视频在线播放 | 中文字幕一区二区区免| 国产亚洲一区二区三区在线不卡| 中文字幕无码一区二区免费| 亚州AV综合色区无码一区| 精品视频在线观看你懂的一区| 一本一道波多野结衣AV一区| 久久国产免费一区| 伊人精品视频一区二区三区| 国产一区二区三区樱花动漫| 欧美日韩精品一区二区在线视频 | 日本不卡一区二区视频a| 国产产一区二区三区久久毛片国语 | 亚洲av无码天堂一区二区三区| 国产香蕉一区二区三区在线视频 | 精品女同一区二区| 无码人妻久久一区二区三区免费丨 | 亚洲高清一区二区三区电影| 中文字幕无线码一区二区| 久久国产精品无码一区二区三区| 国产精品免费一区二区三区四区| 一区二区三区国产| 久久99热狠狠色精品一区| 色妞AV永久一区二区国产AV| 亚洲无线码一区二区三区| 亚洲中文字幕无码一区| 无码少妇一区二区性色AV| 亚洲bt加勒比一区二区| 国产成人精品日本亚洲专一区 | 亚洲av无码一区二区三区四区| 中文字幕一区二区精品区| 蜜桃无码AV一区二区| 一本一道波多野结衣AV一区| 成人精品一区二区激情| 一区二区三区观看| 无码人妻精品一区二区在线视频| 无码国产精品一区二区免费式芒果| 久久人妻av一区二区软件| 亚洲欧美日韩国产精品一区 | 亚洲日本一区二区|