本文简要介绍
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。