当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyspark DataFrame.assign用法及代码示例


本文简要介绍 pyspark.pandas.DataFrame.assign 的用法。

用法:

DataFrame.assign(**kwargs: Any) → pyspark.pandas.frame.DataFrame

将新列分配给 DataFrame。

返回一个包含所有原始列以及新列的新对象。重新分配的现有列将被覆盖。

参数

**kwargs{str:可调用,系列或索引}的字典

列名是关键字。如果这些值是可调用的,则会在 DataFrame 上计算它们并分配给新列。可调用不得更改输入DataFrame(尽管pandas-on-Spark不检查它)。如果值不可调用(例如系列或文字),则仅对它们进行赋值。

返回

DataFrame

除了所有现有列之外,还包含新的DataFrame。

注意

可以在同一个 assign 中分配多个列,但不能引用新创建或修改的列。 Python 3.6 及更高版本的 pandas 支持此函数,但 pandas-on-Spark 不支持此函数。在pandas-on-Spark 中,首先计算所有项目,然后分配。

例子

>>> df = ps.DataFrame({'temp_c': [17.0, 25.0]},
...                   index=['Portland', 'Berkeley'])
>>> df
          temp_c
Portland    17.0
Berkeley    25.0

其中值是可调用的,在 df 上评估:

>>> df.assign(temp_f=lambda x: x.temp_c * 9 / 5 + 32)
          temp_c  temp_f
Portland    17.0    62.6
Berkeley    25.0    77.0

或者,可以通过直接引用现有系列或序列来实现相同的行为,您还可以在同一分配中创建多个列。

>>> assigned = df.assign(temp_f=df['temp_c'] * 9 / 5 + 32,
...                      temp_k=df['temp_c'] + 273.15,
...                      temp_idx=df.index)
>>> assigned[['temp_c', 'temp_f', 'temp_k', 'temp_idx']]
          temp_c  temp_f  temp_k  temp_idx
Portland    17.0    62.6  290.15  Portland
Berkeley    25.0    77.0  298.15  Berkeley

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.pandas.DataFrame.assign。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。