用法:
DataFrame.transform(func, axis=0, *args, **kwargs)
在 self 上調用
func
生成與 self 具有相同軸形狀的 DataFrame。- func:函數,str,list-like 或 dict-like
用於轉換數據的函數。如果是函數,則必須在傳遞 DataFrame 或傳遞給 DataFrame.apply 時工作。如果 func 既是 list-like 又是 dict-like,則 dict-like 行為優先。
接受的組合是:
function
字符串函數名
list-like 的函數和/或函數名稱,例如
[np.exp, 'sqrt']
軸標簽的dict-like -> 函數、函數名稱或此類的list-like。
- axis:{0 或 ‘index’,1 或 ‘columns’},默認 0
如果為 0 或 ‘index’:將函數應用於每一列。如果為 1 或 ‘columns’:將函數應用於每一行。
- *args:
要傳遞給
func
的位置參數。- **kwargs:
要傳遞給
func
的關鍵字參數。
- DataFrame
一個必須與 self 具有相同長度的 DataFrame。
- ValueError:如果返回的 DataFrame 的長度與 self 不同。
參數:
返回:
拋出:
注意:
改變傳遞對象的函數可能會產生意外行為或錯誤,因此不受支持。有關更多詳細信息,請參閱使用用戶定義函數 (UDF) 方法進行變異。
例子:
>>> df = pd.DataFrame({'A':range(3), 'B':range(1, 4)}) >>> df A B 0 0 1 1 1 2 2 2 3 >>> df.transform(lambda x:x + 1) A B 0 1 2 1 2 3 2 3 4
即使生成的 DataFrame 必須與輸入 DataFrame 具有相同的長度,也可以提供幾個輸入函數:
>>> s = pd.Series(range(3)) >>> s 0 0 1 1 2 2 dtype:int64 >>> s.transform([np.sqrt, np.exp]) sqrt exp 0 0.000000 1.000000 1 1.000000 2.718282 2 1.414214 7.389056
您可以在 GroupBy 對象上調用轉換:
>>> df = pd.DataFrame({ ... "Date":[ ... "2015-05-08", "2015-05-07", "2015-05-06", "2015-05-05", ... "2015-05-08", "2015-05-07", "2015-05-06", "2015-05-05"], ... "Data":[5, 8, 6, 1, 50, 100, 60, 120], ... }) >>> df Date Data 0 2015-05-08 5 1 2015-05-07 8 2 2015-05-06 6 3 2015-05-05 1 4 2015-05-08 50 5 2015-05-07 100 6 2015-05-06 60 7 2015-05-05 120 >>> df.groupby('Date')['Data'].transform('sum') 0 55 1 108 2 66 3 121 4 55 5 108 6 66 7 121 Name:Data, dtype:int64
>>> df = pd.DataFrame({ ... "c":[1, 1, 1, 2, 2, 2, 2], ... "type":["m", "n", "o", "m", "m", "n", "n"] ... }) >>> df c type 0 1 m 1 1 n 2 1 o 3 2 m 4 2 m 5 2 n 6 2 n >>> df['size'] = df.groupby('c')['type'].transform(len) >>> df c type size 0 1 m 3 1 1 n 3 2 1 o 3 3 2 m 4 4 2 m 4 5 2 n 4 6 2 n 4
相關用法
- Python pandas.DataFrame.transpose用法及代碼示例
- Python pandas.DataFrame.truncate用法及代碼示例
- Python pandas.DataFrame.truediv用法及代碼示例
- Python pandas.DataFrame.to_numpy用法及代碼示例
- Python pandas.DataFrame.to_json用法及代碼示例
- Python pandas.DataFrame.to_markdown用法及代碼示例
- Python pandas.DataFrame.to_sql用法及代碼示例
- Python pandas.DataFrame.to_xml用法及代碼示例
- Python pandas.DataFrame.to_latex用法及代碼示例
- Python pandas.DataFrame.to_pickle用法及代碼示例
- Python pandas.DataFrame.to_string用法及代碼示例
- Python pandas.DataFrame.to_csv用法及代碼示例
- Python pandas.DataFrame.to_dict用法及代碼示例
- Python pandas.DataFrame.to_clipboard用法及代碼示例
- Python pandas.DataFrame.to_hdf用法及代碼示例
- Python pandas.DataFrame.tz_localize用法及代碼示例
- Python pandas.DataFrame.to_excel用法及代碼示例
- Python pandas.DataFrame.to_records用法及代碼示例
- Python pandas.DataFrame.take用法及代碼示例
- Python pandas.DataFrame.to_stata用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.transform。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。