本文簡要介紹
pyspark.pandas.DataFrame.transpose
的用法。用法:
DataFrame.transpose() → pyspark.pandas.frame.DataFrame
轉置索引和列。
通過將行寫為列來反映 DataFrame 的主對角線,反之亦然。屬性
T
是方法transpose()
的訪問器。注意
由於大數據的性質,這種方法基於昂貴的操作。在內部,它需要為每個值生成每一行,然後分組兩次——這是一個巨大的操作。為防止誤用,此方法具有“compute.max_rows”默認輸入長度限製,並引發 ValueError。
>>> from pyspark.pandas.config import option_context >>> with option_context('compute.max_rows', 1000): ... ps.DataFrame({'a': range(1001)}).transpose() Traceback (most recent call last): ... ValueError: Current DataFrame has more then the given limit 1000 rows. Please set 'compute.max_rows' by using 'pyspark.pandas.config.set_option' to retrieve to retrieve more than 1000 rows. Note that, before changing the 'compute.max_rows', this operation is considerably expensive.
- DataFrame
轉置的 DataFrame。
返回:
注意:
轉置具有混合 dtype 的 DataFrame 將導致具有強製 dtype 的同質 DataFrame。例如,如果 int 和 float 必須放在同一列中,則它變為 float。如果類型強製是不可能的,它會失敗。
另外,請注意 index 中的值應該是唯一的,因為它們成為唯一的列名。
此外,如果使用 Spark 2.3,則類型應始終完全相同。
例子:
Square DataFrame 具有同質 dtype
>>> d1 = {'col1': [1, 2], 'col2': [3, 4]} >>> df1 = ps.DataFrame(data=d1, columns=['col1', 'col2']) >>> df1 col1 col2 0 1 3 1 2 4
>>> df1_transposed = df1.T.sort_index() >>> df1_transposed 0 1 col1 1 2 col2 3 4
當原始 DataFrame 中的 dtype 是同質的時,我們會得到具有相同 dtype 的轉置DataFrame:
>>> df1.dtypes col1 int64 col2 int64 dtype: object >>> df1_transposed.dtypes 0 int64 1 int64 dtype: object
具有混合數據類型的非正方形DataFrame
>>> d2 = {'score': [9.5, 8], ... 'kids': [0, 0], ... 'age': [12, 22]} >>> df2 = ps.DataFrame(data=d2, columns=['score', 'kids', 'age']) >>> df2 score kids age 0 9.5 0 12 1 8.0 0 22
>>> df2_transposed = df2.T.sort_index() >>> df2_transposed 0 1 age 12.0 22.0 kids 0.0 0.0 score 9.5 8.0
當 DataFrame 混合了 dtype 時,我們得到一個帶有強製 dtype 的轉置 DataFrame:
>>> df2.dtypes score float64 kids int64 age int64 dtype: object
>>> df2_transposed.dtypes 0 float64 1 float64 dtype: object
相關用法
- Python pyspark DataFrame.transform用法及代碼示例
- Python pyspark DataFrame.truncate用法及代碼示例
- Python pyspark DataFrame.truediv用法及代碼示例
- Python pyspark DataFrame.to_latex用法及代碼示例
- Python pyspark DataFrame.to_delta用法及代碼示例
- Python pyspark DataFrame.to_table用法及代碼示例
- Python pyspark DataFrame.to_pandas用法及代碼示例
- Python pyspark DataFrame.to_records用法及代碼示例
- Python pyspark DataFrame.take用法及代碼示例
- Python pyspark DataFrame.to_excel用法及代碼示例
- Python pyspark DataFrame.toPandas用法及代碼示例
- Python pyspark DataFrame.tail用法及代碼示例
- Python pyspark DataFrame.to_spark_io用法及代碼示例
- Python pyspark DataFrame.toLocalIterator用法及代碼示例
- Python pyspark DataFrame.to_pandas_on_spark用法及代碼示例
- Python pyspark DataFrame.to_clipboard用法及代碼示例
- Python pyspark DataFrame.to_numpy用法及代碼示例
- Python pyspark DataFrame.to_orc用法及代碼示例
- Python pyspark DataFrame.to_dict用法及代碼示例
- Python pyspark DataFrame.toJSON用法及代碼示例
- Python pyspark DataFrame.to_parquet用法及代碼示例
- Python pyspark DataFrame.to_markdown用法及代碼示例
- Python pyspark DataFrame.to_csv用法及代碼示例
- Python pyspark DataFrame.toDF用法及代碼示例
- Python pyspark DataFrame.to_json用法及代碼示例
注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.pandas.DataFrame.transpose。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。