目录
一、用法精讲
566、pandas.DataFrame.swapaxes方法
566-1、语法
566-2、参数
566-3、功能
566-4、返回值
566-5、说明
566-6、用法
566-6-1、数据准备
566-6-2、代码示例
566-6-3、结果输出
567、pandas.DataFrame.melt方法
567-1、语法
567-2、参数
567-3、功能
567-4、返回值
567-5、说明
567-6、用法
567-6-1、数据准备
567-6-2、代码示例
567-6-3、结果输出
568、pandas.DataFrame.explode方法
568-1、语法
568-2、参数
568-3、功能
568-4、返回值
568-5、说明
568-6、用法
568-6-1、数据准备
568-6-2、代码示例
568-6-3、结果输出
569、pandas.DataFrame.squeeze方法
569-1、语法
569-2、参数
569-3、功能
569-4、返回值
569-5、说明
569-6、用法
569-6-1、数据准备
569-6-2、代码示例
569-6-3、结果输出
570、pandas.DataFrame.to_xarray方法
570-1、语法
570-2、参数
570-3、功能
570-4、返回值
570-5、说明
570-6、用法
570-6-1、数据准备
570-6-2、代码示例
570-6-3、结果输出
二、推荐阅读
1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
一、用法精讲
566、pandas.DataFrame.swapaxes方法
566-1、语法
# 566、pandas.DataFrame.swapaxes方法
pandas.DataFrame.swapaxes(axis1, axis2, copy=None)
Interchange axes and swap values axes appropriately.
Deprecated since version 2.1.0: swapaxes is deprecated and will be removed. Please use transpose instead.
Returns:
same as input.
566-2、参数
566-2-1、axis1(必须):整数或字符串,表示要交换的第一个轴,可以是轴的编号(0表示行,1表示列)或轴的名称(例如'index'或'columns')。
566-2-2、axis2(必须):整数或字符串,表示要交换的第二个轴,与axis1相同,可以是轴的编号或名称。
566-2-3、copy(可选,默认值为None):布尔值,如果为True,将会返回一个新对象的副本;如果为False,则可能会在原地操作,但行为可能会由于实现的不同而有所不同。
566-3、功能
交换给定的两个轴,比如,如果你想将行和列进行交换,可以通过这个方法实现,它在处理数据重构或者在需要改变视图时非常有用。
566-4、返回值
返回一个新的DataFrame,其两个指定轴已被交换,如果copy参数为True,则返回的是一个DataFrame的副本;如果copy为False,则可能会返回原始数据的视图。
566-5、说明
无
566-6、用法
566-6-1、数据准备
无
566-6-2、代码示例
# 566、pandas.DataFrame.swapaxes方法
import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
})
# 使用swapaxes交换轴
swapped_df = df.swapaxes(0, 1) # 交换行和列
print(swapped_df)
566-6-3、结果输出
# 566、pandas.DataFrame.swapaxes方法
# 0 1 2
# A 1 2 3
# B 4 5 6
567、pandas.DataFrame.melt方法
567-1、语法
# 567、pandas.DataFrame.melt方法
pandas.DataFrame.melt(id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None, ignore_index=True)
Unpivot a DataFrame from wide to long format, optionally leaving identifiers set.
This function is useful to massage a DataFrame into a format where one or more columns are identifier variables (id_vars), while all other columns, considered measured variables (value_vars), are “unpivoted” to the row axis, leaving just two non-identifier columns, ‘variable’ and ‘value’.
Parameters:
id_vars
scalar, tuple, list, or ndarray, optional
Column(s) to use as identifier variables.
value_vars
scalar, tuple, list, or ndarray, optional
Column(s) to unpivot. If not specified, uses all columns that are not set as id_vars.
var_name
scalar, default None
Name to use for the ‘variable’ column. If None it uses frame.columns.name or ‘variable’.
value_name
scalar, default ‘value’
Name to use for the ‘value’ column, can’t be an existing column label.
col_level
scalar, optional
If columns are a MultiIndex then use this level to melt.
ignore_index
bool, default True
If True, original index is ignored. If False, the original index is retained. Index labels will be repeated as necessary.
Returns:
DataFrame
Unpivoted DataFrame.
567-2、参数
567-2-1、id_vars(可选,默认值为None):列表,表示用于标识每一行的列名,这些列的值不会被“融化”,这是指在转换为长格式时保留的变量。
567-2-2、value_vars(可选,默认值为None):列表,表示要融化的列的列名,如果未指定,则会融化除id_vars外的所有列。
567-2-3、var_name(可选,默认值为None):字符串,表示用于生成新列的名称,用于每个变量的名称,如果为None,则默认使用“variable”作为列名。
567-2-4、value_name(可选,默认值为'value'):字符串,表示融化后生成的新列的名称,该列包含所有的值。
567-2-5、col_level(可选,默认值为None):整数或字符串,用于多级列索引的情况下,指定级别以选取要融化的列。
567-2-6、ignore_index(可选,默认值为True):布尔值,如果为True,则不会保留原来的索引,如果为False,则保留原索引。
567-3、功能
用于将宽格式的DataFrame转换为长格式,方便后续的数据处理和分析,它将指定的列按值展开到新的行中,从而创建一个新的DataFrame,其中每行代表观察值。
567-4、返回值
返回一个新的DataFrame,包含id_vars作为标识符和融化后的变量值,新生成的DataFrame将包含var_name列和value_name列。
567-5、说明
无
567-6、用法
567-6-1、数据准备
无
567-6-2、代码示例
# 567、pandas.DataFrame.melt方法
import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({
'ID': [1, 2],
'A': [10, 20],
'B': [30, 40]
})
# 使用melt将DataFrame从宽格式转换为长格式
melted_df = df.melt(id_vars=['ID'], value_vars=['A', 'B'], var_name='Variable', value_name='Value')
print(melted_df)
567-6-3、结果输出
# 567、pandas.DataFrame.melt方法
# ID Variable Value
# 0 1 A 10
# 1 2 A 20
# 2 1 B 30
# 3 2 B 40
568、pandas.DataFrame.explode方法
568-1、语法
# 568、pandas.DataFrame.explode方法
pandas.DataFrame.explode(column, ignore_index=False)
Transform each element of a list-like to a row, replicating index values.
Parameters:
columnIndexLabel
Column(s) to explode. For multiple columns, specify a non-empty list with each element be str or tuple, and all specified columns their list-like data on same row of the frame must have matching length.
New in version 1.3.0: Multi-column explode
ignore_indexbool, default False
If True, the resulting index will be labeled 0, 1, …, n - 1.
Returns:
DataFrame
Exploded lists to rows of the subset columns; index will be duplicated for these rows.
Raises:
ValueError
If columns of the frame are not unique.
If specified columns to explode is empty list.
If specified columns to explode have not matching count of elements rowwise in the frame.
568-2、参数
568-2-1、column(必须):字符串,表示需进行展开的列的名称,该列应包含列表或数组,该列中的每个元素都将被分解为单独的行。
568-2-2、ignore_index(可选,默认值为False):布尔值,如果为True,则在返回结果中重置索引;如果为False,则保留原DataFrame的索引。
568-3、功能
将指定列中的列表或数组元素展开为多个行,为数据处理和分析提供便利,这对包含集合类型数据(如列表)的DataFrame特别有用,因为它可以使这些数据更易于使用和分析。
568-4、返回值
返回一个新的DataFrame,其中指定的列被展开为多行,原DataFrame中的其他列将与展开后的数据相匹配,如果使用了ignore_index=True,则返回的DataFrame将具有新的连续索引。
568-5、说明
无
568-6、用法
568-6-1、数据准备
无
568-6-2、代码示例
# 568、pandas.DataFrame.explode方法
import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({
'ID': [1, 2, 3],
'Values': [[10, 20], [30], [40, 50, 60]]
})
# 使用explode将Values列展开
exploded_df = df.explode(column='Values', ignore_index=True)
print(exploded_df)
568-6-3、结果输出
# 568、pandas.DataFrame.explode方法
# ID Values
# 0 1 10
# 1 1 20
# 2 2 30
# 3 3 40
# 4 3 50
# 5 3 60
569、pandas.DataFrame.squeeze方法
569-1、语法
# 569、pandas.DataFrame.squeeze方法
pandas.DataFrame.squeeze(axis=None)
Squeeze 1 dimensional axis objects into scalars.
Series or DataFrames with a single element are squeezed to a scalar. DataFrames with a single column or a single row are squeezed to a Series. Otherwise the object is unchanged.
This method is most useful when you don’t know if your object is a Series or DataFrame, but you do know it has just a single column. In that case you can safely call squeeze to ensure you have a Series.
Parameters:
axis
{0 or ‘index’, 1 or ‘columns’, None}, default None
A specific axis to squeeze. By default, all length-1 axes are squeezed. For Series this parameter is unused and defaults to None.
Returns:
DataFrame, Series, or scalar
The projection after squeezing axis or all the axes.
569-2、参数
569-2-1、axis(可选,默认值为None):整数,指定要去除的维度,可以取以下值:
- 0或'index':去除行维度(即只保留列)。
- 1或'columns':去除列维度(即只保留行)。
- None(默认):去除所有单维度,返回更小的DataFrame或Series,如果没有单维度,返回原DataFrame。
569-3、功能
从DataFrame中去除单一维度,简化数据结构,当DataFrame只包含单列或单行时,使用squeeze可以将其转换为Series,该操作在进行数据处理时,可以提高数据的灵活性和可读性。
569-4、返回值
如果指定的轴存在单维度(即只有一个元素的维度),返回一个Series;如果没有单维度,返回原DataFrame;如果没有指定轴且存在单维度,返回一个Series;如果没有单维度,返回原始DataFrame。
569-5、说明
无
569-6、用法
569-6-1、数据准备
无
569-6-2、代码示例
# 569、pandas.DataFrame.squeeze方法
import pandas as pd
# 创建一个只有一列的DataFrame
df = pd.DataFrame({
'A': [1, 2, 3]
})
# 使用squeeze将只有一列的DataFrame转换为Series
squeezed_series = df.squeeze(axis=1)
print(squeezed_series, end='\n\n')
# 创建一个只有一行的DataFrame
df_single_row = pd.DataFrame({
'A': [1],
'B': [2]
})
# 使用squeeze将只有一行的DataFrame转换为Series
squeezed_series_row = df_single_row.squeeze(axis=0)
print(squeezed_series_row)
569-6-3、结果输出
# 569、pandas.DataFrame.squeeze方法
# 0 1
# 1 2
# 2 3
# Name: A, dtype: int64
#
# A 1
# B 2
# Name: 0, dtype: int64
570、pandas.DataFrame.to_xarray方法
570-1、语法
# 570、pandas.DataFrame.to_xarray方法
pandas.DataFrame.to_xarray()
Return an xarray object from the pandas object.
Returns:
xarray.DataArray or xarray.Dataset
Data in the pandas structure converted to Dataset if the object is a DataFrame, or a DataArray if the object is a Series.
570-2、参数
无
570-3、功能
将DataFrame中的索引和列转换为xarray数据集的坐标,并将数据填充到一个多维数组中,这一转换使得数据可以利用xarray提供的高效计算和分析功能。
570-4、返回值
返回一个xarray.Dataset对象,包含了原DataFrame的数据以及对应的坐标信息。
570-5、说明
无
570-6、用法
570-6-1、数据准备
无
570-6-2、代码示例
# 570、pandas.DataFrame.to_xarray方法
import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({
'temperature': [15, 20, 22],
'humidity': [30, 45, 50]
}, index=['Location1', 'Location2', 'Location3'])
# 将DataFrame转换为xarray Dataset
xarray_dataset = df.to_xarray()
print(xarray_dataset)
570-6-3、结果输出
# 570、pandas.DataFrame.to_xarray方法
# <xarray.Dataset> Size: 72B
# Dimensions: (index: 3)
# Coordinates:
# * index (index) object 24B 'Location1' 'Location2' 'Location3'
# Data variables:
# temperature (index) int64 24B 15 20 22
# humidity (index) int64 24B 30 45 50