當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.DataFrame.assign用法及代碼示例


用法:

DataFrame.assign(**kwargs)

將新列分配給 DataFrame。

返回一個包含所有原始列以及新列的新對象。重新分配的現有列將被覆蓋。

參數

**kwargs{str:callable 或 Series} 的字典

列名是關鍵字。如果這些值是可調用的,則在 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

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.assign。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。