小编agr*_*_42的帖子

透视并重命名 Pandas 数据框

我有一个格式的数据框

      Date         Datediff         Cumulative_sum
01 January 2019       1                   5
02 January 2019       1                   7
02 January 2019       2                   15
01 January 2019       2                   8
01 January 2019       3                   13
Run Code Online (Sandbox Code Playgroud)

我想从数据框中旋转列 Datediff 使最终结果看起来像

Index            Day-1    Day-2    Day-3
01 January 2019    5        8        13
02 January 2019    7        15
Run Code Online (Sandbox Code Playgroud)

我已经使用了 pivot 命令 shuch

pt = pd.pivot_table(df, index = "Date",
                   columns = "Datediff",
                   values = "Cumulative_sum") \
               .reset_index() \
               .set_index("Date"))
Run Code Online (Sandbox Code Playgroud)

返回数据透视表

                   1        2         3
01 January 2019    5        8        13
02 January 2019 …
Run Code Online (Sandbox Code Playgroud)

python pivot-table pandas

3
推荐指数
1
解决办法
766
查看次数

使用数值和分类变量在 PySpark 中创建“特征”列

我正在尝试使用 Python 在 Spark 中创建一个“功能”列,以便机器学习库使用。但是,我在生成“特征”列的 VectorAssembler 中遇到了包括数值和分类变量在内的问题。

cat_cols = ["cat_1", "cat_2", "cat_3"]
num_cols = ["num_1", "num_2", "num_3", "num_4"]

indexers = [StringIndexer(inputCol = c, outputCol="{0}_indexed".format(c)) for c in cat_cols]

encoders = [StringIndexer(inputCol = indexer.getOutputCol(), outputCol = "{0}_encoded".format(indexer.getOutputCol())) 
for indexer in indexers]

assembler = VectorAssembler(inputCols = [encoder.getOutputCol() for encoder in encoders], outputCol = "features")

pipeline = Pipeline(stages = indexers + encoders + [assembler])
df = pipeline.fit(df).transform(df)
Run Code Online (Sandbox Code Playgroud)

到目前为止构建的管道可以创建一个仅包含分类变量的“特征”列,但我不知道如何扩展它以使“特征”列同时包含分类变量和数值变量。

请注意,我使用的是 Spark 2.3 和 Python 3。

python apache-spark pyspark

1
推荐指数
1
解决办法
1140
查看次数

有效地为所有行和列添加前缀

我的目标是为从 SQL 查询返回的所有行和列添加前缀(同一列的所有行都应采用相同的前缀)。我目前的做法是

echo "$(<my_sql_query> | awk '$0="prefixA_"$0' | 
                         awk '$2="prefixB_"$2' |
                         awk '$3="prefixC_"$3' |
                         awk '$4="prefixD_"$4')"
Run Code Online (Sandbox Code Playgroud)

上面的脚本正是我想要的,但我想知道是否有更快的方法。

shell awk

0
推荐指数
1
解决办法
75
查看次数

标签 统计

python ×2

apache-spark ×1

awk ×1

pandas ×1

pivot-table ×1

pyspark ×1

shell ×1