找回密码
 会员注册
查看: 22|回复: 0

PythonPandas简要教程

[复制链接]

2万

主题

0

回帖

6万

积分

超级版主

积分
68585
发表于 2024-9-5 00:45:59 | 显示全部楼层 |阅读模式
文章目录一、简介二、Pandas基本数据结构及其方法2.1Series2.2DataFrame三、标签和索引四、常用方法4.1数据读取和写入4.11🟢CSV文件4.12🟢Excel文件4.13其它文件4.2字符串处理4.3表格拼接4.4时间数据处理一、简介Pandas是一个用于数据操作和分析的开源Python库。它提供了高效的数据结构和数据分析工具,特别适合处理结构化数据(如表格数据)。Pandas在数据清洗、预处理、统计分析、数据可视化等方面有广泛的应用。Github:https://github.com/pandas-dev/pandasUserGuide:https://pandas.pydata.org/docs/user_guide/index.html主要特点:易用的数据结构:Series:一维数组,类似于Python的列表或字典。DataFrame:二维数据结构,类似于Excel表格或SQL表。数据操作:支持对数据进行增删改查操作。提供丰富的数据清洗和预处理功能,包括缺失值处理、数据过滤、分组、聚合等。支持多种数据格式的读写,如CSV、Excel、SQL、JSON等。高效的性能:基于NumPy实现,具有高效的计算性能。支持多种加速库,如Dask、Modin,可以在大数据处理时提升性能。数据可视化:与Matplotlib、Seaborn等可视化库无缝集成,方便生成各种类型的图表。二、Pandas基本数据结构及其方法2.1Seriespd.Series是Pandas库中的一种基本数据结构,用于表示一维的带标签数组。它既可以包含整数、浮点数、字符串等数据类型,也可以包含其他Python对象。可以通过多种方式创建一个Series:importpandasaspd#通过列表创建s=pd.Series([1,3,5,7,9])#通过字典创建data={'a':1,'b':3,'c':5}s=pd.Series(data)#通过标量创建(指定索引)s=pd.Series(5,index=['a','b','c','d'])12345678910单从这里看,Series是具有列表或字典的特性的。🟢Series属性:属性说明例index返回或设置Series的索引s.index=[‘A’,‘B’,‘C’,‘D’,‘E’]values返回Series中的数据(不包含索引)s.valuesname返回或设置Series的名称s.name=‘my_series’dtype返回Series的数据类型s.dtype🟢Series方法:(1)基本方法方法功能描述示例代码head(n)返回前n个元素,默认返回前5个s.head(3)tail(n)返回后n个元素,默认返回后5个s.tail(3)shape返回Series的形状(元素个数)s.shapeindex返回Series的索引标签s.indexvalues返回Series的值(不包含索引)s.valuesdtypes返回Series的数据类型s.dtypes(2)数据选择与操作方法功能描述示例代码loc[]按标签选择元素s.loc['a']iloc[]按位置选择元素s.iloc[0]at[]快速访问单个元素(标签方式)s.at['a']iat[]快速访问单个元素(位置方式)s.iat[0]drop(labels)删除指定的元素s.drop('a')rename()重命名索引标签s.rename({'a':'alpha'})replace()替换指定的值s.replace(10,100)map()对Series中的每个元素应用函数或映射s.map(lambdax:x*2)apply(func)对Series中的每个元素应用函数s.apply(lambdax:x+1)(3)数据聚合与统计方法功能描述示例代码sum()计算Series中所有元素的和s.sum()mean()计算Series中所有元素的均值s.mean()median()计算Series中所有元素的中位数s.median()mode()计算Series中所有元素的众数s.mode()std()计算Series中所有元素的标准差s.std()var()计算Series中所有元素的方差s.var()count()计算Series中非NA/null值的数量s.count()min()计算Series中所有元素的最小值s.min()max()计算Series中所有元素的最大值s.max()(4)处理缺失值方法功能描述示例代码isna()检测缺失值(NA/null)s.isna()notna()检测非缺失值s.notna()fillna(value)用指定值填充缺失值s.fillna(0)dropna()删除包含缺失值的元素s.dropna()2.2DataFramepandas.DataFrame是Pandas库中最重要的数据结构之一,主要用于表示二维的数据表格。它可以看作是由多个Series构成的字典,每个Series表示DataFrame的一列。以下是有关DataFrame的详细介绍:可以通过多种方式创建一个DataFrame:通过字典创建data={'name':['Alice','Bob','Charlie'],'age':[25,30,35],'city':['NewYork','SanFrancisco','LosAngeles']}df=pd.DataFrame(data)123456通过列表的列表创建data=[['Alice',25,'NewYork'],['Bob',30,'SanFrancisco'],['Charlie',35,'LosAngeles']]columns=['name','age','city']df=pd.DataFrame(data,columns=columns)12345通过字典的字典创建data={'name':{'0':'Alice','1':'Bob','2':'Charlie'},'age':{'0':25,'1':30,'2':35},'city':{'0':'NewYork','1':'SanFrancisco','2':'LosAngeles'}}df=pd.DataFrame(data)123456通过numpy数组创建data=np.array([['Alice',25,'NewYork'],['Bob',30,'SanFrancisco'],['Charlie',35,'LosAngeles']])df=pd.DataFrame(data,columns=['name','age','city'])1234输出:nameagecity0Alice25NewYork1Bob30SanFrancisco2Charlie35LosAngeles1234🟢DataFrame属性:属性说明例index返回DataFrame的行索引print(df.index)columns返回DataFrame的列标签print(df.columns)shape返回DataFrame的维度(行数,列数)print(df.shape)values返回DataFrame的所有数据(不包含索引和列标签)print(df.values)dtype返回每列的数据类型print(df.dtypes)🟢DataFrame方法:pandas.DataFrame提供了丰富的方法来进行数据操作和分析。(1)基本方法方法功能描述示例代码head(n)返回前n行,默认返回前5行df.head(3)tail(n)返回后n行,默认返回后5行df.tail(3)shape返回DataFrame的维度(行数,列数)df.shapedescribe()生成描述性统计信息df.describe()info()打印DataFrame的信息摘要df.info()columns返回DataFrame的列标签df.columnsindex返回DataFrame的行索引df.indexdtypes返回每列的数据类型df.dtypesvalues返回DataFrame的数据(不含索引和列标签)df.values(2)数据选择与操作方法功能描述示例代码loc[]按标签选择行和列df.loc['row_label','col_label']iloc[]按位置选择行和列df.iloc[0,1]at[]快速访问单个元素(标签方式)df.at['row_label','col_label']iat[]快速访问单个元素(位置方式)df.iat[0,1]drop(labels,axis)删除指定行或列df.drop('column_name',axis=1)rename()重命名行或列标签df.rename(columns={'old_name':'new_name'})set_index()设置指定列为索引df.set_index('column_name')reset_index()重置索引为默认整数索引df.reset_index()sort_values(by)按指定列排序df.sort_values(by='column_name')sort_index()按索引排序df.sort_index()fillna(value)用指定值填充缺失值df.fillna(0)dropna()删除包含缺失值的行或列df.dropna()duplicated()检测重复的行df.duplicated()(3)数据聚合与变换方法功能描述示例代码groupby(by)按指定列分组df.groupby('column_name').mean()agg(func)对分组后的数据应用多个聚合函数df.groupby('column_name').agg(['sum','mean'])apply(func)对DataFrame的每列或每行应用函数df.apply(lambdax:x.max())pivot_table()创建数据透视表df.pivot_table(index='row_col',values='data_col',aggfunc='mean')melt()将DataFrame从宽格式转换为长格式df.melt(id_vars=['id'],value_vars=['var1','var2'])(4)数据合并与连接方法功能描述示例代码merge()合并两个DataFramepd.merge(df1,df2,on='key')concat()连接多个DataFramepd.concat([df1,df2])join()按索引连接两个DataFramedf1.join(df2)三、标签和索引在Pandas中,"索引"和"标签"在某些方面相似,但它们的使用和作用有些不同。索引(Index):定义:在Pandas中,"索引"指的是用于标识数据的位置的标签。它可以是行索引(对于DataFrame和Series的行)或列索引(对于DataFrame的列)。功能:定位和访问数据:索引用于定位和访问数据。例如,通过行索引,可以快速访问特定行的数据。对齐数据:在进行数据合并、对齐等操作时,Pandas会自动对齐索引,以确保数据一致性。标签的灵活性:索引不仅可以是整数,还可以是字符串、日期、时间等类型,提供了灵活的数据标识方式。示例:importpandasaspd#创建一个Seriess=pd.Series([10,20,30],index=['a','b','c'])print(s.index)#输出:Index(['a','b','c'],dtype='object')#创建一个DataFramedf=pd.DataFrame({'name':['Alice','Bob','Charlie'],'age':[25,30,35]},index=['one','two','three'])print(df.index)#输出:Index(['one','two','three'],dtype='object')123456789101112标签(Label):定义:在Pandas中,"标签"通常是指数据的具体标识符或名称,用于访问Series或DataFrame中的特定数据。功能:数据访问:通过标签可以直接访问Series或DataFrame中的数据。例如,通过标签获取特定的行或列。行列操作:标签用于进行行和列的操作,比如选择特定的行或列,或对行列进行重命名等。示例:importpandasaspd#创建一个Seriess=pd.Series([10,20,30],index=['a','b','c'])print(s['a'])#输出:10#创建一个DataFramedf=pd.DataFrame({'name':['Alice','Bob','Charlie'],'age':[25,30,35]},index=['one','two','three'])print(df.loc['one'])#输出:nameAlice\nage25\nNamene,dtypebject123456789101112区别与联系:相似性:索引和标签都是用来标识数据的,索引是Pandas的核心结构之一,标签是索引的一种具体应用。标签是索引的一部分:在Series中,标签通常指的是索引的具体值,用于访问数据。区别:范围:索引是一种广泛的概念,涉及行索引和列索引,而标签更具体,通常指单个索引值。用途:索引用于整体的标识和数据对齐,而标签更多用于数据的实际访问和操作。四、常用方法有很多方法在前面Series和DataFrame的方法表格里面,包括数据的打印预览、索引设置、统计性信息等等,都很常用,这里不重复介绍了。4.1数据读取和写入Pandas支持多种数据格式的读取和写入,包括CSV、Excel、Txt、SQL数据库、JSON、HDF5等。4.11🟢CSV文件也适用于.txt文件。读取:默认将第一行作为列名即列标签,如果本来有列名,又指定了列名,则会把原来的列名当成第一行数据。importpandasaspd#从CSV文件读取数据df=pd.read_csv('file_path.csv')#指定分隔符df=pd.read_csv('file_path.csv',delimiter=',')#指定列名df=pd.read_csv('file_path.csv',names=['col1','col2','col3'])#指定编码(如果出错):utf-8,ISO-8859-1,latin1,cp1252df=pd.read_csv('file_path.csv',encoding='utf-8')#读取特定列,可以是列索引,也可以是列标签df=pd.read_csv('file_path.csv',usecols=['col1','col2'])#将特定列作为索引,可以是列索引,也可以是列标签df=pd.read_csv('file_path.csv',index_col='A1')#将某一列转换为整数df=pd.read_csv('file_path.csv',converters={'column_name':to_int})12345678910111213141516171819202122参数,只有文件名是必选。参数名类型默认值描述filepath_or_bufferstr,path-like,file-likeNone读取的CSV文件路径或文件对象。sepstr‘,’分隔符,用于分隔文件中的字段。delimiterstrNone与sep相同,指定字段的分隔符。headerint,listofint,None‘infer’用于指定行号作为列名。如果为None,则默认读取第一行作为列名。namesarray-likeNone指定列名。如果提供了header参数为None,则使用这些列名。index_colint,str,sequenceofint/strNone用作索引的列编号或列名。usecolslist-like,callableNone读取的列。可以是列的编号、名称或一个函数。dtypeTypenameordictofcolumn->typeNone数据类型,用于转换数据。engine{‘c’,‘python’}‘c’CSV解析器引擎。c是C语言引擎,python是Python引擎。skiprowsint,list-likeNone跳过的行数或行号列表。skipfooterint0文件末尾跳过的行数。nrowsintNone读取的行数。na_valuesscalar,str,list-like,dictNone指定缺失值的标记。keep_default_naboolTrue是否保留缺失值标记。convertersdictNone列转换函数字典。parse_datesbool,list,dictFalse解析日期列。date_parserfunctionNone自定义日期解析函数。thousandsstrNone数字中的千分位分隔符。commentstrNone用于指定注释的开始字符。encodingstrNone文件的编码格式。encoding_errorsstr‘strict’编码错误处理策略。quotecharstr‘"’字符串引用字符。quotingint0控制字段的引用方式。doublequoteboolTrue是否使用双引号来表示包含双引号的字段。escapecharstrNone转义字符。line_terminatorstrNone行终止符。skipinitialspaceboolFalse是否跳过字段值中的初始空格。skip_blank_linesboolTrue是否跳过空白行。mangle_dupe_colsboolTrue是否处理重复列名。storage_optionsdictNone存储选项,用于文件系统或其他外部存储。写入:#写入到CSV文件df.to_csv('file_path.csv',index=False)#包含索引df.to_csv('file_path_with_index.csv',index=True)#不写入列名df.to_csv('file_path_without_header.csv',header=False)12345678参数名类型默认值描述path_or_bufstr,path-like,file-likeNone要保存的目标路径或文件对象。如果为None,则返回字符串。sepstr‘,’字段分隔符,用于分隔文件中的字段。na_repstr‘’替换缺失值的字符串。float_formatstrNone浮点数的格式字符串。columnssequence,optionalNone指定要写入文件的列。如果为None,则写入所有列。headerbool,listofstrTrue是否写入列名。如果为布尔值,表示是否写入列名。如果为列表,指定列名。indexboolTrue是否写入行索引。index_labelstr,sequence,orNoneNone行索引的标签。modestr‘w’文件打开模式。encodingstrNone文件的编码格式。compression{‘infer’,‘bz2’,‘gzip’,‘xz’,‘zip’,None}None文件压缩格式。quotecharstr‘"’字符串引用字符。quotingint0控制字段的引用方式。line_terminatorstrNone行终止符。chunksizeintNone分块大小。如果指定,数据将被分块写入。date_formatstrNone日期格式。doublequoteboolTrue是否使用双引号来表示包含双引号的字段。escapecharstrNone转义字符。errorsstr‘strict’错误处理策略。storage_optionsdictNone存储选项,用于文件系统或其他外部存储。4.12🟢Excel文件读取:#从Excel文件读取数据df=pd.read_excel('file_path.xlsx',sheet_name='Sheet1')#读取多个表单df=pd.read_excel('file_path.xlsx',sheet_name=['Sheet1','Sheet2'])#读取特定列df=pd.read_excel('file_path.xlsx',usecols=['col1','col2'])#读取特定行df=pd.read_excel('file_path.xlsx',skiprows=5)123456789101112参数名类型默认值描述iostr,path-like,file-likeNone要读取的Excel文件路径或文件对象。sheet_namestr,int,list,None0要读取的工作表名或索引,None读取所有工作表。headerint,listofint,None0用作列名的行号。如果为None,则默认使用第一行作为列名。namesarray-likeNone指定列名。如果提供了header参数为None,则使用这些列名。index_colint,str,sequenceofint/strNone用作索引的列编号或列名。usecolslist-like,callableNone读取的列。可以是列的编号、名称或一个函数。dtypeTypenameordictofcolumn->typeNone数据类型,用于转换数据。engine{‘xlrd’,‘openpyxl’,‘odf’,‘pyxlsb’}NoneExcel解析器引擎。选择用于读取Excel文件的引擎。convertersdictNone列转换函数字典。parse_datesbool,list,dictFalse解析日期列。date_parserfunctionNone自定义日期解析函数。thousandsstrNone数字中的千分位分隔符。skiprowsint,list-likeNone跳过的行数或行号列表。skipfooterint0文件末尾跳过的行数。nrowsintNone读取的行数。na_valuesscalar,str,list-like,dictNone指定缺失值的标记。keep_default_naboolTrue是否保留缺失值标记。convert_floatboolTrue是否将浮点数转换为float类型。json_normalizeboolFalse是否将嵌套JSON数据展平。storage_optionsdictNone存储选项,用于文件系统或其他外部存储。写入:#写入到Excel文件df.to_excel('file_path.xlsx',sheet_name='Sheet1',index=False)#写入多个表单withpd.ExcelWriter('file_path.xlsx')aswriter:df1.to_excel(writer,sheet_name='Sheet1',index=False)df2.to_excel(writer,sheet_name='Sheet2',index=False)12345678参数名类型默认值描述excel_writerstr,ExcelWriterNoneExcel文件路径或ExcelWriter对象,用于保存文件。sheet_namestr‘Sheet1’要写入的工作表名称。na_repstr‘’替换缺失值的字符串。float_formatstrNone浮点数的格式字符串。columnssequence,optionalNone指定要写入文件的列。如果为None,则写入所有列。headerbool,listofstrTrue是否写入列名。如果为布尔值,表示是否写入列名。如果为列表,指定列名。indexboolTrue是否写入行索引。index_labelstr,sequence,orNoneNone行索引的标签。startrowint0写入数据的起始行。startcolint0写入数据的起始列。engine{‘xlsxwriter’,‘openpyxl’,‘odf’,‘xlwt’}NoneExcel写入引擎。选择用于写入Excel文件的引擎。merge_cellsboolTrue是否合并单元格。encodingstrNone文件的编码格式。date_formatstrNone日期格式。datetime_formatstrNonedatetime对象的格式。sheet_namestr‘Sheet1’要写入的工作表名称。engine{‘xlsxwriter’,‘openpyxl’,‘odf’,‘xlwt’}NoneExcel写入引擎。选择用于写入Excel文件的引擎。optionsdictNone存储选项,用于文件系统或其他外部存储。4.13其它文件(1)SQL数据库fromsqlalchemyimportcreate_engine#创建数据库连接engine=create_engine('sqlite:///database.db')#从SQL数据库读取数据df=pd.read_sql('SELECT*FROMtable_name',con=engine)#读取指定列df=pd.read_sql('SELECTcol1,col2FROMtable_name',con=engine)#将DataFrame写入SQL数据库df.to_sql('table_name',con=engine,if_exists='replace',index=False)#if_exists参数:#'fail'-如果表存在,则抛出ValueError#'replace'-如果表存在,删除表后写入#'append'-如果表存在,数据追加到表中123456789101112131415161718(2)JSON#从JSON文件读取数据df=pd.read_json('file_path.json')#读取JSON文件的特定部分df=pd.read_json('file_path.json',orient='records')#写入到JSON文件df.to_json('file_path.json',orient='records',lines=True)#orient参数:#'split'-分割格式#'records'-记录格式#'index'-索引格式#'columns'-列格式#'values'-值格式123456789101112131415还有好多其它格式,不展开了。4.2字符串处理在pandas中,字符串处理可以通过Series对象的.str属性来进行。这个属性提供了一系列用于处理字符串的方便方法。方法名描述示例代码str.lower()将字符串转换为小写字母。df['col'].str.lower()str.upper()将字符串转换为大写字母。df['col'].str.upper()str.title()将字符串的每个单词首字母大写。df['col'].str.title()str.capitalize()将字符串的首字母大写,其余字母小写。df['col'].str.capitalize()str.strip()去除字符串两端的空白字符。df['col'].str.strip()str.lstrip()去除字符串左侧的空白字符。df['col'].str.lstrip()str.rstrip()去除字符串右侧的空白字符。df['col'].str.rstrip()str.replace()替换字符串中的指定子字符串。df['col'].str.replace('old','new')str.find()查找子字符串的位置,如果不存在则返回-1。df['col'].str.find('substring')str.contains()检查字符串中是否包含指定的子字符串。df['col'].str.contains('substring')str.startswith()检查字符串是否以指定子字符串开头。df['col'].str.startswith('prefix')str.endswith()检查字符串是否以指定子字符串结尾。df['col'].str.endswith('suffix')str.split()根据指定的分隔符拆分字符串,返回一个列表。df['col'].str.split(',')str.join()将列表中的字符串用指定分隔符连接成一个字符串。df['col'].str.join(',')str.extract()使用正则表达式提取匹配的子字符串。df['col'].str.extract(r'(\d+)')str.findall()使用正则表达式查找所有匹配的子字符串。df['col'].str.findall(r'\d+')str.zfill()在字符串的左侧填充零,使其达到指定的宽度。df['col'].str.zfill(5)str.isalpha()检查字符串是否仅包含字母。df['col'].str.isalpha()str.isdigit()检查字符串是否仅包含数字。df['col'].str.isdigit()str.isnumeric()检查字符串是否仅包含数字字符。df['col'].str.isnumeric()str.islower()检查字符串是否仅包含小写字母。df['col'].str.islower()str.isupper()检查字符串是否仅包含大写字母。df['col'].str.isupper()4.3表格拼接在pandas中,表格拼接主要通过以下方法实现:concat:用于沿指定轴(行或列)将多个DataFrame连接在一起。append:用于将一个DataFrame添加到另一个DataFrame的末尾,实际上是concat的一种快捷方式。merge:用于通过一个或多个键将两个DataFrame进行连接,类似于SQL中的JOIN操作。join:用于将两个DataFrame进行基于索引的连接,类似于merge,但通常用于基于索引的连接。是Series、DataFrame之间拼接,不能直接把列表这些和它们拼接。add=['Alice','hello','Ha','Nice']df['A4']=pd.Series(add)12🟢concat:concat方法用于沿指定轴将多个DataFrame合并在一起,可以处理不同的轴和连接方式(如外连接、内连接)。主要参数:参数名类型默认值描述objslistofDataFrameNone要拼接的DataFrame对象列表。axisint0指定拼接的轴,0为行方向(增加行数),1为列方向(增加列数)。join{‘inner’,‘outer’}‘outer’指定连接方式,'inner'表示内连接,'outer'表示外连接。ignore_indexboolFalse是否忽略原有的行索引,重新生成新的行索引。keyslistNone生成层次化索引的键。示例:importpandasaspd#创建示例DataFramedf1=pd.DataFrame({'A':['A0','A1'],'B':['B0','B1']})df2=pd.DataFrame({'A':['A2','A3'],'B':['B2','B3']})#沿行方向拼接result=pd.concat([df1,df2],axis=0,ignore_index=True)print(result)123456789输出:AB0A0B01A1B12A2B23A3B312345🟢append:append方法用于将一个DataFrame追加到另一个DataFrame的末尾。它是concat的简化版本,主要用于行拼接(增加行数)。示例:importpandasaspd#创建示例DataFramedf1=pd.DataFrame({'A':['A0','A1'],'B':['B0','B1']})df2=pd.DataFrame({'A':['A2','A3'],'B':['B2','B3']})#追加df2到df1result=df1.append(df2,ignore_index=True)print(result)123456789输出:AB0A0B01A1B12A2B23A3B312345🟢merge:merge用于通过一个或多个键将两个DataFrame进行连接,支持多种合并方式,包括内连接、外连接、左连接和右连接。主要参数:参数名类型默认值描述leftDataFrameNone左侧DataFrame。rightDataFrameNone右侧DataFrame。how{‘left’,‘right’,‘outer’,‘inner’}‘inner’合并方式:'left'、'right'、'outer'、'inner'。onstr,listofstrNone用于合并的列名。如果列名不同,可以使用left_on和right_on参数。left_onstr,listofstrNone左侧DataFrame中用于合并的列名。right_onstr,listofstrNone右侧DataFrame中用于合并的列名。left_indexboolFalse是否使用左侧DataFrame的索引进行合并。right_indexboolFalse是否使用右侧DataFrame的索引进行合并。示例代码:importpandasaspd#创建示例DataFramedf1=pd.DataFrame({'key':['A','B','C'],'value1':[1,2,3]})df2=pd.DataFrame({'key':['B','C','D'],'value2':[4,5,6]})#内连接result=pd.merge(df1,df2,on='key',how='inner')print(result)123456789输出:keyvalue1value20B241C35123🟢join:join方法用于基于索引连接两个DataFrame,通常用于索引对齐。示例代码:importpandasaspd#创建示例DataFramedf1=pd.DataFrame({'A':[1,2,3]},index=['a','b','c'])df2=pd.DataFrame({'B':[4,5]},index=['b','c'])#使用join基于索引连接result=df1.join(df2)print(result)123456789输出:ABa1NaNb24.0c35.012344.4时间数据处理(1)解析和创建日期时间数据方法/属性主要参数描述pd.to_datetimearg,format,errors将日期时间字符串转换为datetime对象。pd.date_rangestart,end,freq,periods创建指定频率的日期时间索引。(2)日期时间属性访问方法/属性主要参数描述.dt.year-获取年份.dt.month-获取月份.dt.day-获取日期.dt.hour-获取小时.dt.minute-获取分钟.dt.second-获取秒数.dt.weekday()-获取星期几,0表示星期一.dt.strftime()format按指定格式格式化日期时间对象为字符串。(3)时间差和时间计算方法/属性主要参数描述Timedeltadays,hours,minutes创建时间差对象。pd.DateOffsetdays,months,years创建日期偏移对象,添加或减去时间。(4)日期时间索引和重采样方法/属性主要参数描述pd.date_rangestart,end,freq,periods创建日期时间索引。.resample()rule,how对时间序列数据进行重采样。.asfreq()freq,fill_value设置时间序列的频率,选择填充值。(5)日期时间格式化方法/属性主要参数描述.strftime()format按指定格式将日期时间对象格式化为字符串。(6)时间窗口操作方法/属性主要参数描述.rolling()window,min_periods创建滚动窗口。.sum()-计算滚动窗口的总和。.mean()-计算滚动窗口的均值。.apply()func对滚动窗口应用自定义函数。format:指定格式的字符串。可以包含以下格式符号:符号描述示例%Y年(四位数字)2024%m月(两位数字)07%d日(两位数字)22%H小时(24小时制)10%M分钟30%S秒数45%f微秒123456%a星期几(缩写)Mon%A星期几(全名)Monday%b月份(缩写)Jul%B月份(全名)Julyimportpandasaspdts=pd.Timestamp('2024-07-2210:30:45')print(ts.strftime('%Y-%m-%d'))#2024-07-22print(ts.strftime('%d/%m/%Y'))#22/07/2024print(ts.strftime('%I:%M%p'))#10:30AM123456
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-5 08:33 , Processed in 0.757824 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表