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


Python dask.dataframe.DataFrame.assign用法及代码示例


用法:

DataFrame.assign(**kwargs)

将新列分配给 DataFrame。

此文档字符串是从 pandas.core.frame.DataFrame.assign 复制而来的。

可能存在与 Dask 版本的一些不一致之处。

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

参数

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

列名是关键字。如果这些值是可调用的,则在 DataFrame 上计算它们并分配给新列。可调用对象不能更改输入 DataFrame(尽管 pandas 不会检查它)。如果这些值不可调用(例如,系列、标量或数组),则只需对其进行赋值。

返回

DataFrame

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

注意

可以在同一个assign 中分配多个列。 '**kwargs' 中的后续项目可能会引用 ‘df’ 中新创建或修改的列;项目按顺序计算并分配到‘df’。

例子

>>> df = pd.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

或者,可以通过直接引用现有的系列或序列来实现相同的行为:

>>> df.assign(temp_f=df['temp_c'] * 9 / 5 + 32)  
          temp_c  temp_f
Portland    17.0    62.6
Berkeley    25.0    77.0

您可以在同一分配中创建多个列,其中一列依赖于同一分配中定义的另一列:

>>> df.assign(temp_f=lambda x: x['temp_c'] * 9 / 5 + 32,  
...           temp_k=lambda x: (x['temp_f'] +  459.67) * 5 / 9)
          temp_c  temp_f  temp_k
Portland    17.0    62.6  290.15
Berkeley    25.0    77.0  298.15

相关用法


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