数据分析答案

下列选项中,用于搭接数据仓库和保证数据质量的(B.数据处理)

下列选项中,用于删除缺失值的方法是(B.delete())

下列选项中,用于绘制单变量分布的函数是(A.displot())

下列选项中,用于绘制双变量分布的函数是(B.joinplot())

下列选项中,用于标注词语词性的模块是(D.nltk.tag)

下列选项中,用来表示矢量化三元表达式的是(A.where())

下列选项中,用来表示时间序列中的频率为每小时的是(D.H)

下列选项中,用来表示时间序列中的频率为每周六的(D.W-SAT)

下列选项中,用来表示Pandas中的时期的是(A.Period)

下列选项中,不属于ndarray对象属性的是(D.map)

下列选项中,不属于groupby()方法分组方式的是(D.集合)

下列选项中,不属于Seaborn中分类数据可视化库的是(D.分类数据的直方图)

下列选项中,不能创建一个Series对象的是(D.ser_obj=pd.Series(1,2))

下列选项中,关于dropna()方法描述正确的是(C.dropna()方法会删除值为None和NaN的数据)

下列选项中,关于fillna()方法描述正确的是(D.fillna()方法可以填充替换值为 NaN 和 None的数据)

下列选项中,关于drop_duplicates()方法描述错误的是(A.仅支持单一特征数据的去重)

下列选项中,可以一次性创建多个子图的是(D.subplots())

下列选项中,主要用来获得根词的是(A.WordNetLemmatizer)

下列选项中,NLTK 用来标记形容词的是(A.JJ)

下列选项中,(A.Jupyter Notebook)基于Web的交互式计算环境

下列函数中,用于打开NLTK下载器的是(A.download())

下列函数中,用于计算整数的绝对值的是(C.abs())

下列函数中,用于计算对角线元素和的是(C.trace ())

下列函数中,用于沿着轴方向堆叠Pandas对象的是(A.concat())

下列函数中,用于保存当前生成的图表的是(C.savefig())

下列函数中,可以为图表设置标题的是(C.title())

下列函数中,可以为图表设置图例的是(A.legend())

下列函数中,可以用于创建等差数组的函数是(B.arange())

下列函数中,可以设置当前图形x轴范围的是(B.xlim())

下列函数中,属于二元通用函数的是(C.add())

下列图表中,适用于比较跨类别数据的是(D.散点图)

下列图表中,可以清晰地反映出各数据系列的百分比情(C.饼图)

下列图表中,可以清晰地反映出数据变化趋势的是(B.折线图)

下列图表中,能够识别异常值的是(A.箱形图)

下列pyplot模块的函数中,可以绘制条形图的是(A.bar())

下列pyplot模块的函数中,可以绘制直方图的是(B.hist())

下列pyplot模块的函数中,可以绘制饼图的是(C.pie())

下列pyplot模块的函数中,可以绘制散点图的是(D.scatter())

下列关于数据预处理的说法中,描述不正确的是(D.concat()函数可以根据一个或多个键将不同的DataFrame进行合并)

下列关于数据分析概念的描述错误的是(D.数据分析不能够在杂乱无章的数据中提取有用的数据)

下列关于数组运算的描述错误的是(D.数组不支持算术运算符与标量之间的运算)

下列关于Bokeh库描述不正确的是(C.不适用于大量的数据集)

下列关于DataFrame说法正确的是(A.DataFrame结构是由索引和数据组成)

下列关于ndarray对象描述正确的是(B.ndarray对象中存储元素的类型必须是相同的)

下列关于ndarray对象索引的描述错误的是(D.ndarray对象的多维数组索引和切片的使用方式与列表的使用方式完全相同)

下列关于Pandas库的说法中正确的是(C.Pandas是在NumPy基础上建立的新程序库)

下列关于groupby()方法的说法中,描述正确的是(C.调用groupby()方法返回一个GroupBy 对象)

下列方法中,能够转换时期频率的是(C.asfreq())

下列方法中,能够对常规时间序列数据重新采样(D.resample())

下列方法中,用来创建一个滑动窗口的是(B.rolling())

下列方法中,可以将元组转换为MultiIndex对象的是(A.from_tuples())

下列方法中,用于返回出现相对较频繁的单(C.most_common())

下列参数中,调整后显示中文的是(C.font.sans-serif)

下列代码中,绘制散点图的是(A.plt.scatter(x,y))

下列的数组统计计算中,用于计算数组中最大值的方法(A.max)

下列关于常见图表说法正确的是(C.折线图可以用作查看特征间的趋势关系)

下列nltk模块中,可以对句子实现分词操作的是(B.nltk.tokenize)

下列分词模式中,可以将句子中所有成词词语都扫描出来的是(B.全模式)

关于数据重塑的说法中,下列选项描述错误的是(C.对一个DataFrame使用stack()方法后返回的一定是一个Series)

关于数组运算的说法中,下列描述错误的是(D.广播机制需要扩展维度大的数组)

关于数据分析的说法,下列描述错误的是(C.数据分析没有实际的使用意义)

关于词性归一化的说法中,下列描述正确的是(D.词形还原能够捕捉基于词根的规范单词形式)

关于Pandas中数据排序,下列说法正确的是(A.即可以按照行索引排序,也可以按照列索引排序)

关于Pandas层次化索引,下列说法错误的是(B.层次化索引至多只能有两层索引)

关于Anaconda组件的说法中,下列描述错误的是(B.Jupyter Notebook 是基于客户端的交互式计算环境,可以编辑易于人们阅读的文档,用于展示数据分析的过程)

关于agg()方法的使用中,下列描述错误的是(A.agg()方法中func参数只能传入一个函数)

关于agg()方法的用法中,下列描述错误的是(C.每列的数据只能使用相同的函数)

关于apply()方法的说法中,下列描述正确的是(A.apply()方法是对DataFrame)

关于apply()方法的功能,下列选项中说法正确的是(A.apply()方法是对DataFrame)

关于时间序列的移动,下列说法错误的是(B.时间序列移动后,索引也会发生变化)

关于预处理的说法中,下列选项中描述不正确是(D.unstack()方法可以将列索引旋转为行索引)

关于降采样的说法中,下列描述错误的是(C.降采样的数据量是增加的)

关于异常值的说法,下列选项中描述错误的是(A、异常值是指样本中明显偏离其余观测值的个别值)

关于创建ndarray对象。下列描述错误的是(A.使用 list()函数可以创建一个ndarray对象)

关于哑变量的说法中,下列选项描述错误的是(D.哑变量的使用没有实际意义)

关于分组聚合过程的说法中,下列描述不正确的是(D.只能对纵轴方向上的数据进行分组)

关于文本预处理的过程,下列描述错误的是(D.文本中的每个单词都能够表明文本的特征)

关于Anaconda的组件中,可以编辑文档且展示数据分析过程的是(D.Jupyter Notebook)

关于ndarray对象属性,下列描述错误的是(C.size属性表示数组元素的总个数,等shape属性元组元素的和)

关于Series结构,下列描述正确的是(B.Series由一组数据和与之相关的索引两部分构成)

关于Matplotlib的说法中,下列描述正确的是(B.它使用简单,仅用几行代码就能生成各种图表)

关于groupby()方法的返回值,下列说法错误的是(D.groupby()方法没有返回值)

关于transform()方法的说法中,下列描述错误的是(C.transform()方法只能使用内置方法对数据进行转换操作)

在进行算术运算时,如果希望一次性输出多个统计指标可以使用(B.describe())方法

在创建ndarray对象时,可以使用(A.dtype)参数来指定元素类

在创建Figure对象时,可以指定哪个参数来设置画布的尺寸(C.figsize)

在创建Figure对象时,可以指定哪个参数来给画布添加背景颜色(D.facecolor)

在NumPy通用函数中,用于计算元素级最大值的函数是(B.maximum)

在NumPy模块中表示生成随机种子的函数是(A.seed())

通过 date_range()函数创建DatetimeIndex对象时,可以设置哪个参数指定起始日期(D.start)

通过 date_range()函数创建DatetimeIndex对象时,可以设置哪个参数指定终止日期(C.end)

通过 date_range()函数创建DatetimeIndex对象时,可以设置哪个参数指定产生多少个时间戳索引值(B.periods)

通过date_range()函数创建DatetimeIndex对象时,可以设置哪个参数来改变计时单位(A.freq)

通过date_range()函数创建DatetimeIndex对象时,可以设置(A.normalize)参数来规范时间戳

通过date_range()函数创建DatetimeIndex对象时,如果只是传入了开始日期,则还需要用(C.periods)参数指定产生多少个

请阅读下面一段程序:period=pd.Period("2011-01") other_period = pd.Period("2012/06") print(period-other_period)运行上述程序,它最终输出的结果为(B.-17)

请阅读下面一段程序:period=pd.Period(2010)print(period+5)运行上述程序,它最终输出的结果为(A.2015)

请阅读下面一段程序:import numpy as npnp.arange(1, 10, 3)运行程序,最终执行的结果是(B.array([1, 4, 7]))

请阅读下面一段程序:arr2d=np.empty((4, 4))for i in range(4): arr2d[i]=np.arange(i, i+4)arr2d[[0,4],[3,1]]执行上述程序,它最终输出的结果为(B.程序抛出IndexError异常)

请阅读下面一段程序:import pandas as pdser_obj=pd.Series([1, 2, 3,], index=['c', 'd', 'a'])ser_obj2=ser_obj.reindex(['a', 'b', 'c', 'd'])print(ser_obj2)执行上(C.a 3.0b NaNc 1.0d 2.0)

请阅读下面一段程序:import pandas as pd date_index=pd.to_datetime(['20180908', '20181008', '20181108'])date_index[2]运行上述程序,它最终执行的结果为(A.Timestamp('2018-11-08 00:00:00'))

请阅读下面一段程序:import pandas as pd import numpy as np date_list = ['2015/06/01', '2017/02/01','2016.6.1','2018.6.1'] date_index=pd.to_datetime(date_list) date_se=pd.Series(np.arange(4), index=date_index)date_se[3]运行程序,它最终执行的结果为(B.3)

请阅读下面一段程序:import pandas as pd import numpy as np from datetime import datetime date_list = ['2015/06/01', '2016/02/01','2016.6.1','2018.6.1'] date_index = pd.to_datetime(date_list)date_se = pd.Series(np.arange(4), index=date_index)若需要获取 2016-06-01对应的数据,则下列选项中可以填写到横线处的是(C、date_se[datetime(2016, 6, 1)])

请阅读下面一段程序:roll_window=ser_obj.rolling(window=10)有关上述程序,下面描述错误的是(A.roll_window是一个Period类对象)

请阅读下列一段示例程序:arr2d=np.array([[11, 20, 5],[21, 15, 26],[17, 8, 19]])arr2d[0:2, 0:2]运行上述程序,它最终执行的结果为(A.array([[11, 20],[21, 15]]))

请阅读下列一段示例程序:import numpy as np arr1=np.array([[0], [1], [2]]) arr2=np.array([1, 2]) result=arr1+arr2 print(result.shape)运行上述程序,输出的结果为(A.(3, 2))

请阅读下列一段程序:arr=np.arange(12).reshape(3, 4)arr.shape运行上述程序,它最终执行的结果为(C.(3, 4))

创建DatetimeIndex对象的代码如下:pd.date_range(start='2018/2/1', end='2018/2/28',fre=__)如果希望生成的时间戳为每周日,则下列选项中可以填写到横线处的是(C.W-SUN)

创建一个DatetimeIndex对象的代码如下:pd.date_range('2018/08/10', '2018/08/15')默认情况下,该对象中时间戳的频率为(B.D)

已知,有如下一个二维数组:arr2d=np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])如果希望获取元素5,则可以使用(A.arr2d[1, 1])实现

请看如下代码:import numpy as np arr=np.array([[6, 2, 7],[3, 6, 2], [4, 3, 2]]) arr.sort() arr对代码中的 NumPy数组执行 sort()方法结果正确的是(A.array([[2, 6, 7],[2,3, 6],[2, 3, 4]]))

要想创建一个3*4的数组,下列选项正确的是(B.np.arange(12).reshape(3, 4))数据分析的一般流程为(A.明确目的和思路、数据收集、数据处理、数据分析、数据展现)

以下关于Pandas数据转换的说法中正确的是(D.哑变量处理就是将分类变量转换为哑变量矩阵)

当使用resample()方法重新采样时,下列哪个参数可以确定采样的闭合区间(D.closed)

如果希望还原单词的基本形式,则需要使用import语句导入哪个模块(C.nltk.stem)

Matplotlib主要是用哪种语言编写的(A.Python)

Pandas在执行算术运算时,没有对齐的位置会使用(C.NaN)进行

下列关于随机数模块描述正确的是(A.NumPy的random模块具有更多的随机数功能B.random模块中包括生成服从多种概率分布随机数的函数C.numpy.random模块中有用于生成大量样本值的函数D.rand()函数隶属于numpy.random模块)

下列关于通用函数的说法中正确的是(A.通用函数是一种针对ndarray中的数据执行元素级运算的函数B.通用函数会返回一个新的数组D.通用函数分为一元通用函数与二元通用函数)

下列关于多维数组切片的描述正确的是(A.在选取元素时可以传入一个切片B.在选取元素时可以传入多个切片C.在选取元素时可以将切片与整数索引混合使用)

下列关于重复值处理的说法中,正确的是(B.drop_duplicates()方法用于删除重复数据C.重复数据的判断标准是两个数据中所有条目的值都相等D.duplicated()方法支持从前向后和从后向前两种查找模式)

下列关于哑变量的说法中正确的是(A.哑变量是用来反映某个变量的不同类别C.哑变量只能将值设置为0或1D.Pandas中get_dummies()函数可以进行哑变量处理)

下列关于异常值检测的说法中正确的是(A.在使用 3σ原则检测异常值时需要保证数据遵守正态分布B.检测出的异常值不一定会被删除D.Pandas中可以使用boxplot()方法绘制箱形图,以实现对数据中的异常值进行检测)

下列关于Pandas层次化索引说法正确的是(A.层次化索引是指Pandas对象在一个轴方向上具有多层索引B.使用 from_tuples()方法可以将元组列表转换为MultiIndex对象C.使用 from_arrays()方法可以将数组列表转换为MultiIndex对象)

下列关于Pandas的索引说法正确的是(A.Pandas中的索引都是Index类对象C.索引对象是不可修改的D.Index对象是可以共享的)

下列关于Pandas数据排序说法正确的是(A.sort_values()可以按值排序C.sort_index()可以按索引排序)

下列关于 ARIMA(p,d,q)的说法中,描述正确的是(A.ARIMA是一种用于时间序列预测的常见统计模型B.参数p代表自回归项数C.参数d代表差分阶数D.参数q代表滑动平均项数)

下列关于apply()方法说法不正确的是(A.apply()方法是对DataFrame每一个元素应用某个函数B.apply()方法可以实现transform()方法所有的功能D.对不同列数据应用不同函数)

下列关于DataFrame说法正确的是(A.DataFrame是一个类似二维数组的对象B.DataFrame是由数据和索引组成C.DataFrame有行索引与列索引)

下列关于Matplotlib库描述正确的是(A.Matplotlib是一个用在Python中绘制数组的2D图形库B.Matplotlib主要用纯Python语言进行编写C.Matplotlib起源于模仿MATLAB图形命令)

下列关于ndarray索引说法正确的是(A.可以使用整数进行索引B.可以使用整数数组进行索引D.可以使用布尔数组进行索引)

下列关于groupby()方法的使用,描述不正确的是(B.使用字典做为分组键时,对字典中的数据没有任何要求C.函数不可以做为分组键)

下列关于Series说法正确的是(A.Series是一个类似一维数组的对象B.Series可以保存任何类型的数据C.Serie由数据和索引构成)

下列关于 Series 说法正确的是(A.Series是一个类似一维数组的数据结构B.Series可以保存任何类型的数据C.Series由数据和索引构成)

下列有关agg()方法描述正确的是(A.可以对每一列数据应用不同的函数D.可以对不同的数据应用不同的函数)

下列有关降采样的说法中,描述正确的是(A.降采样是将高频率数据聚合到低频率数据C.降采样的数据量是减少的D.降采样就相当于另外一种形式的分组聚合操作)

下列选项中,属于数据处理的目的是(A.使数据更加适用于分析B.对无意义的数据进行清洗C.整合数据D.提高数据质量)

下列选项中,属于描述性数据分析的方法有(A.对比分析法B.平均分析法C.交叉分析法)

下列选项中,属于视觉结构的是(A.形状B.色彩C.方向D.尺寸)

下列选项中,属于agg()方法使用方式的是(A.对每一列数据应用同一个函数B.对某列数据应用不同的数据C.对不同列数据应用不同函数)

下列选项中,属于 jieba 库支持的分词模式的是(A.精确模式B.全模式C.搜索引擎模式)

下列选项中,属于NumPy功能的是(A.快速高效的多维数据对象ndarrayB.高性能科学计算和数据分析的基础包C.多维数组(矩阵)具有矢量运算能力,快速、节省空间D.线性代数、随机数生成以及傅里叶变换功能)

下列选项中,关于数据预处理说法错误的是(A.数据清洗包含了数据标准化、数据合并和缺失值处理B.数据合并按照合并轴的方向主要分为左连接、右连接、内连接和外连接D.数据标准化的主要对象是类别型特征)

下列选项中,关于分组聚合描述正确的是(A、拆分是将数据集按照一些标准拆分为若干个组B.应用是将某个函数或方法(内置和自定义均可)应用到每个分组C.合并是将产生的新值整合到结果对象中)

下列选项中,关于transform()方法描述不正确的是(B.返回的数据可以与被分组数据形状相等D.可以对不同的数据应用不同的函数)

下列选项中,创建时间序列的方式正确的是(A.date_index=pd.to_datetime(['20181108', '20171108'])pd.Series([11, 22], index=date_index) B.date_list=[datetime(2016, 11, 8), datetime(2017, 11, 8)]pd.Series([11, 22], index=date_list))

下列选项中,可以用来提取词干的是(B.PorterStemmer C.LancasterStemmer D.SnowballStemmer)

下列函数中,可以创建NumPy数组的是(A.array()B.zeros()C.empty()D.ones())

下列函数中,可以对数据进行的合并的是(A.concat()B.join()C.merge()D.combine_first())

下列方法中,可以读取数据库数据的是(A.read_sql()B.read_table()C.read_sql_query())

下列方法中,可以修改数据类型的是(A.astype()B.to_numberic())

下列Pandas方法中,用于求最大值和最小值的是(C.max D.min)

下列代码中,用于创建 Period 对象的是(A.pd.Period(2018) B.pd.Period('2017/6') D.date=datetime(2017,12,1)pd.Period(date,freq="D"))

下列工具中,能够用于数据分析的是(A.NumPy B.Pandas C.Matplotlib D.Seaborn)

下列不属于NumPy的数据类型的是(A.char B.varchar)

下列字符串中,可以用做时间戳索引的是(A.'20180601' B.'2018-06-01' C.'2018/06/01' D.'6/1/2018')

关于数组排序<下例描述正确的是(A.当数组使用sort()方法后,数组默认从小到大进行排序B.当数组使用sort()方法后,数组默认从大到小进行排序)

关于数组统计运算,下列说法中正确的是(A.sum()方法表示对数组中全部或某个轴向的元素求和B.mean()方法表示计算平均值)

关于数组广播的说法中,下列描述错误的是(A.两个数组的某一维度等长。B.数组的某一维度为1。C.数组广播机制可以对任意两个数组进行扩展)

关于读取网页表格数据的说法中,下列描述正确的是(A.使用read_html()函数可以读取网页表格数据C.read_html()函数返回一个DataFrame列表对象D.read_html()函数只能对网页中的table标签进行读取)

关于读写excel文件的说法中,下列描述正确的是(A.to_excel()方法表示将结构化数据写入到 Excel文件中C.read_excel()函数表示将结构化数据读取到DataFrame中)

关于预处理中的数据合并,下列说法中错误的是(A.concat()函数是最常用的主键合并函数,可以通过内连接和外连接的方式堆叠合并数据B.merge()函数是最常用的主键合并的函数,但不能够通过左连接和右连接的方式合并数据C.join()方法是最常用的主键合并方法之一,但不能够通过左连接和右连接的方式合并数据D.combine_first()方法只适用于 DataFrame 对象)

关于空值和缺失值,下列说法中正确的是(B.使用isnull()可以检测数据中是否存在空值或缺失值C.notnull()与isnull()方法都可以判断数据中是否存在空值或缺失值D.dropna()方法可以删除空值和缺失值)

关于Anconda的特点,下列描述正确的是(A.完全开源和免费C.包含了众多流行的科学、数学、工程和数据分析的Python库)

关于all()函数与any()函数,下列选项中描述正确(A.all()用于判断整个数组中的元素的值是否全部满足条件,如果满足条件返回True,否则返回FalseC.any()函数用于判断整个数组中的元素至少有一个满足条件就返回True,否则就返回False)

关于Pandas特点的描述中,下列描述正确的是(A.智能数据对齐和缺失数据的集成处理B.基于标签的切片、花式索引和大数据集的子集C.按数据分组进行聚合和转换D.具有时间序列功能)

关于Pandas中的数据重塑,下列说法正确的是(A.stack()方法可以将列索引转换为行索引C.当一个DataFrame通过pivot()方法经过轴向旋转后返回一个新的DataFrame)

关于GroupBy对象,下列描述正确的是(A.DataFrame经过分组后得到了一个DataFrameGroupBy对象B.Series经过分组后得到了一个SeriesGroupBy对象D.采用惰性计算)

在统计学领域中,数据分析可以划分为(A.描述性数据分析C.探索性数据分析D.验证性数据分析)

当使用groupby()方法分组时,下列选项中可以作为分组方式的(A.列表或数组B.DataFrame中某列的名称C.字典或Series)

检测出异常值之后,通常会采用哪些方式处理它们(A.直接将含有异常值的记录删除B.用具体的值来进行替换,可用前后两个观测值的平均值修正该异常值C.不处理,直接在具有异常值的数据集上进行统计分析D.视为缺失值,利用缺失值的处理方法修正该异常值)

已知有如下一个数组:arr=np.array([-1,0,1])下列选项中,哪个执行后的结果为True(A.np.any(arr>0)B.np.any(arr<0))

Anconda 支持哪些操作系统(A.Windows B.Mac OS C.Linux)

Pandas的数据结构有(A.Series B.DataFrame)

Jupyter Notebook 可以将文件保存为哪些格式(A.html B.ipynb C.pdf D.py)

NumPy 数组的转置可以通过(A.transpose()B.reshape())实现

如果希望创建一个数组,则只能用array()函数实现()

如果希望时间序列中的时间戳不再是固定的每天,则可以在创建DatetimeIndex时对freq参数进行修改()

如果希望一次性创建一组子图,则可以通过subplot()函数进行实现()

如果两个数组的形状不同,则它们是无法执行算术运算的()

如果两个向量的夹角越小,则表示它们越不相似()

如果要卸载指定环境中的包,则直接使用remove命令移除即()

如果调用transpose()方法时传入“(0,1,2)”,则数组的shape不会发生任何变化()

如果把年份字符串作为索引使用,则可以获取到属于这一年的所有数据()

如果是将低频率数据转换到高频率数据,则称为降采样()

如果相同频率的两个Period对象进行数学运算,那么计算结果为它们的单位数量()

如果Period对象加上或者减去一个整数,则会根据具体的时间单位进行位移操作()

通过agg()方法进行聚合时只能接收单个函数()

通过date_range()函数创建DatetimeIndex对象时,如果只是传入了开始日期或结束日期,则还需要用 periods 参数指定产生多少个时间戳()

通过empty()函数创建的数组中所有元素值都是NaN()

通过from_arrays()方法可以将元组列表转换为MultiIndex()

通过merge()函数合并数据时可以指定多个键()

通过zeros()函数创建的数组中元素值都是0()

通用函数会对数组中的每一个元素都进行操作()

数据分析是一个有目的地收集和整合数据的过程()

数组使用切片和索引的方式与列表完全一样()

数组的转置其实就是轴对换操作()

在操作DataFrame对象时,可以通过指定索引名的方式获取()

在箱形图中超出上界和下界的值称为异常值()

在操作时间戳索引时,可以直接使用任何日期字符串来选取()

在使用 date_range()函数创建DatetimeIndex对象时,必须要保证同时指定start、end、periods、freq中至少三个参数()

在创建DatetimeIndex对象时,如果只是指定了开始日期与结束日期,则默认生成的时间戳是按小时计算的()

在时间序列中,默认生成的时间戳是按天计算的()

在降采样时,时间序列的数据量是增加的()

在DataFrame中每列的数据都可以看做是一个Series对象()

在NLTK中,如果希望给单词标注词性,则需要先确保已经下载了averaged_perceptron_tagger模块()

使用字典做为分组键时,字典的键必须和数据中的列名相映()

使用Anconda进行开发,可以有效的解决包配置与包冲突的()

使用agg()方法进行聚合运算会对产生的标量值进行广播()

使用concat()函数合并数据时,可以通过左连接和右连接这两种方式连接()

使用groupby()方法进行分组时,其分组键中的数据类型必须是相同的()

使用merge()函数进行数据合并时,不需要指定合并键()

使用pip命令也可以查看Anconda安装的包()

使用Series对象做为分组键时,必须保证 Series 对象的长度与被分组数组的长度相等()

使用transform()方法进行聚合运算,其结果可以保持与原数据形状相同()

使用transform()方法进行聚合运算,所得对象的行索引与被分组对象的行索引大小一定相等()

使用to_numberic()函数可以对任何数据类型进行修改()

时间序列的基础频率后面还可以跟着一个日期偏移量()

时间序列的移动是指沿着纵轴方向将数据进行前移或后移()

时间序列的移动一定会出现边界情况()

时间序列在前移或后移数据时,索引是一直保持不变的()

时间序列数据在升采样时,总体的数据量是增加的()

时间序列是不能使用位置索引来获取数据()

时间序列分析没有任何硬性的要求()

创建数组时可以不指定数据的类型()

创建时间序列时,如果起始时间或结束时间中带有与时间有关的信息,则会保留时间信息()

若调用shift()方法时传入一个正数,则表明时间序列中的数据会沿着纵轴方向移动一次()

若调用shift()方法时传入一个正数,则表明时间序列中的数据会沿着纵轴反方向移动一次()

若某个词在这些文本中出现的次数最多,则表示这个单词比较具有代表性()

我们可以调用new()函数构建一张新的空白画布()

我们可以直接使用pip命令安装jieba库()

文本数据可以直接用来分析,不需要做任何处理()

文本分词是预处理过程中必不可少的一个操作()

如果将cut()函数的cut_all参数设为False,则表示按照全模式进行分词()

如果将cut()函数的cut_all 参数设为False,则表示的是按照精确模式进行分词()

词形归一化是指减少曲折变化的形式,将派生词转化为基本()

词干提取能够捕捉基于词根的规范单词形式()

只要当前的系统中安装了Anconda,则默认就已经拥有了JupyterNotebook,不需要再另行下载和安装()

当满足广播机制中的任一条件后,两个大小不相等的数组也可以进行运算()

大小相等的数组之间的任何算术运算都会将运算应用到元()

假设当前有一个3行3列的ndarray数组,如果想要获取第3行第2列的元素,可以使用ndarray[3,2]()

层次化索引可以交换分层顺序()

缺失数据是人为有意造成的()

具有多层索引的DataFrame对象经过stack()重塑后,返回的是一个Series对象()

哑变量可以用来反映某个变量的不同类别()

只要使用groupby()方法分组,就会产生一个DataFrameGroupby对象()

直方图可以利用方块的高度来反映数据的差异()

散点图包含的数据点越少,比较的效果就会越好()

箱形图提供了一种只5个点对数据集做简单总结的方式()

位于左上角的子图编号为1()

每调用一次add_subplot()方法会规划画布划分子图,且只会添加一个子图()

最基本的时间序列就是以时间戳为索引的Series对象()

起始日期与结束日期定义了时间序列索引的严格边界()

调用shift()方法时传入一个正数,这表明沿着纵轴方向移动一次()

降采样的时间颗粒会变大()

升采样的时间颗粒是变小的()

非平稳的时间序列需要通过差分预算来转变为平稳的时间()

情感极性分析的目的是对文本进行褒义、贬义、中性的判断()

中文并没有一个形式上的分界符()

余弦相似度与向量的幅值无关,只与向量的方向相关()

Anaconda中默认已经安装了NLTK库,可以用import导入使()

Anconda是完全免费的()

Anconda不支持Python2.x版本()

all()函数用于找出数组中的唯一值()

all()函数用于检测数组中的元素是否满足某种条件()

apply()方法可以将某个函数应用到DataFrame对象的每个()

agg()方法可以使用用户自定义的函数()

conda是一个在Windows、Mac OS、和 Linux上运行的开源软件包管理系统和环境管理系统()

DataFrame 的结构是由索引和数据组成的()

dropna()方法可以删除数据中所有的缺失值()

drop_duplicated()方法可以删除重复值()

describe()方法可以一次性输出多个统计指标()

Figure对象可以理解为一张空白的画布,用于容纳图表的各()

Figure 对象允许划分为多个绘图区域()

fillna()方法处理缺失数据时可以使用 Series 对象填充,但不可以使用DataFrame对象填充()

GroupBy对象支持迭代()

groupby()方法不能使用函数做为分组键()

Jupyter Notebook的优点是可以重现整个分析过程,并将说明文字、代码、图表、公式和结论都整合在一个文档中()

Jupyter Notebook可以将文件保存为 ipynb 格式()

Jupyter Notebook可以使用命令行方式打开()

Jupyter Notebook可以使用Markdown语法()

join()方法可以使用左连接和右连接两种方式连接数据()

Matplotlib是一个用在Python中绘制数组的3D图形库()

Numpy是Python开源的数值计算扩展工具()

NumPy支持比 Python 更多的数据类型()

NumPy数组不需要循环遍历,即可对每个元素执行批量的算术运算操作()

NumPy的数组排序默认是从小到大()

NumPy 的random模块比Python的random模块功能更多()

ndarray对象中存储元素的类型必须是相同的()

ndarray对象的数据类型可以通过 type()方法进行转换()

ndarray对象不支持切片操作()

ndarray对象中的swapaxes()方法可以将两个轴进行转换()

NLTK库适用于处理文本分析()

NLTK 是一套基于 Python 的自然语言处理工具包()

NLP 主要是实现人与计算机之间用英文进行有效沟通()

nltk.classify是一个用于类别标签标记的模块()

Pandas是一个基于NumPy的数据分析包,它是为了解决数据分析任务而创建的()

Pandas只有Series和DataFrame两种数据结构()

Pandas中的索引对象是可以修改的()

Pandas既可以按照索引排序也可以按照数据排序()

Python是一门胶水语言,可以轻松地操作其它语言编写的库()

Period对象不支持参与数学运算()

PeriodIndex是用来指代一系列时间段的索引结构()

pivot()方法只适用于DataFrame对象()

pyplot模块中默认拥有一个Figure对象()

read_csv()和read_table()函数没有任何区别()

read_html()函数可以读取网页中所有的数据()

rename()方法可以重命名索引名()

Series 是一个类似于一维数组的对象()

Series 可以保存任何数据类型()

Series 对象可以具有多层索引结构()

Series和DataFrame都支持切片操作()

Seaborn是Python中基于Matplotlib的数据可视化工具,它提供了很多高层封装的函数()

sort()方法可以对任何轴上的数据进行排序()

subplot(323)和subplot(3,2,3)是等价的()

在使用Anconda管理Python包时,可以使用 conda list 命令可以获取当前环境中已经安装的包信息

在使用字典分组键进行分组操作时,会将字典的键转换成Pandas对象的 列名

在创建ndarray对象时,可以使用arange()函数创建一个 等差

在创建Series对象时,可以通过一个列表或 字典 进行构建

在创建DatetimeIndex对象时,如果只是指定了开始日期与结束日期,则默认生成的时间戳是按 天 计算的

在统计学领域,数据分析可以划分为 描述性数据分析  、 探索性数据分析  验证性数据分析

在处理自然语言时 NLTK 库被称为“使用Python进行教学和计算语言学工作的绝佳工具”

在数组统计运算中, cumsum() 方法表示所有元素的累计和

在分组聚合的过程中,应用是指将某个 函数 或方法应用到每个分组

在降采样时,时间序列的数据量是 减少

在NumPy中, all() 函数用于判断整个数组中的元素的值是否全部满足条件。

在Numpy中,可以使用 unique() 函数找出数组中的唯一值

在NumPy中,大小相等的数组之间的任何算术运算都会应用到 元素级

在NumPy中,ndarray对象具有处理 高维数组 的能力

在Jupyter Notebook中使用 Seaborn 时需要使 魔术命令绘图

在Pandas中, 分组 是指使用特定的条件将原数据划分为若干个组

在Pandas中,时间戳使用 Timestamp 对象表示

在Pandas中, Period 类表示一个标准的时间段或时期

数组在进行矢量化运算时,要求数组的形状是 相等 的。

数组的转置指的是将数组中的每个元素按照一定的规则进行 位置 变换

数据分析是指使用适当的 统计分析方法 对收集来的大量数据数据 清洗 的目的在于提高数据质量

数据可视化是指将数据以 图表 的形式表示,并利用数据分析发现其中未知信息的处理过程

通过agg(func)方法进行聚合时,func参数既可以接收Pandas中的内置方法,也可以接收 自定义 函数

通过date_range()函数创建DatetimeIndex对象时,需要指定start、end、periods、 freq 中至少三个参数

通过date_range()函数创建DatetimeIndex对象时,如果只是传入了开始日期或结束日期,则还需要用 periods 参数指定产

通过date_range()函数创建DatetimeIndex对象时,如果想产生一组被规范化到当天午夜的时间戳,则可以将normalize参数的值设为 True

通过fillna()方法填充缺失数据时,可以采用 前向填充  后向填充 两种方式

当一个DataFrame对象执行groupby()方法后会返回一个 DataFrameGroupBy 对象

当调用plot()函数绘制图形时,会画在 最后一次 指定子图的位

若调用shift()方法时传入一个 正数 ,则表明时间序列中的数据会沿着纵轴方向移动一次

若调用shift()方法时传入一个 -1 ,则表明时间序列中的数据会沿着纵轴反方向移动一次

若频率相同的两个 Period 对象进行数学运算,则计算结果为它们的 单位数量

如果希望一次性创建一组 子图 ,则可以通过subplots()函数进

如果希望时间序列中的时间戳不再是固定的每天,则可以在创建DatetimeIndex时对 freq 参数进行修改

如果不希望在默认的画布上绘制图形,则可以调用 figure() 函数构建一张新的空白画布

如果是将高频率数据聚合到低频率数据,则称为 降采样

如果将低频率数据转换到高频率数据,则称为 升采样

时间序列的基础频率还可以跟着一个被称为日期偏移量的 DateOffset 对象。

时间序列的移动是指沿着 时间轴 方向将数据进行前移或后移。

时间序列数据经过移动操作后, 数据 发生了变化,而时间戳索

时间序列是指多个 时间点 上形成的数值序列

使用read_html()函数读取网页数据时,只能读取网页的 table 标签

使用drop_duplicates()函数 删除 重复数据时

词形归一化的目的是将派生词转化为 基本 形式

词性标注是给分词结果中的每个单词标注一个正确 词性 的过

余弦相似度通过计算两个 向量 的夹角余弦值来评估它们的相

余弦相似度与向量的幅值无关,只与向量的 方向 相关

根据数组参数的个数可以将通用函数分为 一元 通用函数与 二元 通用函数

已知数组a的shape为(4,1)数组 b 的shape为(2,),则它们相加后得到数组的shape为 (4,2)

缺失值产生的原因主要有 人为原因  机械原因

检测异常值的方法有 3σ原则  箱形图

拉依达原则在检测异常值时必须保证数据遵守 正态分布

分组聚合的过程可分为 拆分  应用 和合并

以列表或数组做为分组键时,它们的 长度 必须与待分组对象的

折线图是用直线段将各数据点连接起来而组成的图形,以 折线 的方式显示数据的变化趋势

条形图是用 宽度 相同的条形的高度或者长短来表示数据多少

饼图可以显示一个数据序列中各项的大小与各项总和的 比例

要想使用 Matplotlib 绘制图表,需要先导入 pyplot 模块

我们可以使用 datetime 构建的日期来获取它对应的数据

调用 shift()方法时传入一个正数,沿着纵轴方向移动 一

不平稳的时间序列需要通过一定手段转化为平稳序列,一般采用的手段就是 差分

英文句子是以 空格 为分隔符的

文本情感分析是对带有 情感色彩 的主观性文本进行分析、处理、归纳和推理的过程

情感分析可以细分为 情感极性 分析、情感程度分析及主客观分

一般,我们会使用 词频 来表示文本特征

ARIMA 是一种用于时间序列 预测 的常见统计模型

Anconda Promp是Anconda自带的 命令行

Bokeh是 交互 式可视化的绘图库,支持Web浏览器展示

Bokeh是一个专门针对 Web 浏览器 使用的交互式可视化库

DataFrame类对象属于二维结构,它同时拥有 行 索引和 列

DataFrame中每列的数据都可以看作是一个 Series 对象

DatetimeIndex 对象表示由一组 时间戳 构成的索引

duplicated()方法用于 标记 重复值。

duplicated()方法用于标记 Pandas 对象的数据是否重复,重复则标记为 True

Figure 对象允许划分为多个绘图区域,每个绘图区域都是一个 Axes 对象,被称为子图

groupby()是Pandas中提供的一个用来 分组 的方法

Jupyter Notebook最大的优点是可以 重现 整个分析过程

Jupyter Notebook是一个支持 实时 代码、数学方程、可视化和Markdown的Web应用程序

Pandas是一个基于 NumPy 的数据分析包,它是为了解决数据分析任务而创建的

Pandas是一个基于 NumPy 的Python库

Pandas中使用 cut() 函数实现离散化数据。

Pandas中使用 get_dummies() 函数实现哑变量处理

Pandas中的频率是由一个 基础频率 和一个乘数组成的

Pandas常用的数据结构有 Series  DataFrame

Pandas执行算术运算时,会先按照索引进行对齐,对齐以后再进行相应的运算,没有对齐的位置会用 NaN 进行补齐

Pandas提供的 date_range()函数主要用于生成一个具有 固定 频率的 DatetimeIndex 对象

pyplot模块中默认拥有一个表示空白画布的 Figure 对象

Seaborn是Python中基于 Matplotlib 的数据可视化工具

Seaborn 基于 Matplotlib 核心库进行了更高级的 API 封装。

Seaborn 绘制图表之前,需要导入绘图的 接口

Series 结构由 索引  数据 组成

stack()方法可以列索引将转换为 行索引

transform()方法会对产生的标量值进行 广播 操作

MultiIndex类提供了3种创建层次化索引的方法,它们分别是from_tuples()、from_arrays()和 from_product()

Matplotlib 是一个Python 2D 绘图 库,作图风格接近MATLAB

merge()函数连接数据的方式包括内连接、外连接、 左连接  右连接

ndarray对象具有 矢量算术 能力和复杂的广播能力

ndarray对象的 ndim 属性,可以输出数组的维数

ndarray中 size 属性用于计算数组中元素的个数

nltk.text模块中提供了 TextCollection 类来表示一组文本

Numpy中的通用函数是针对 ndarray 中的数据执行元素级运算

NumPy中的花式索引,是指用整数 数组 或列表进行索引

Numpy数组,在进行标量计算时会产生一个与数组具有 相同数量

NumPy数组不需要循环遍历,便可对每个元素执行批量的算术运算,这个过程叫做 矢量化 运算

NumPy的 where() 函数是三元表达式x if condition else y的矢量化版本

NLTK是一套基于 Python 的自然语言处理工具包

NLTK中的 nltk.corpus 模块用于获取和处理语料库

NLTK库中提供了一个 FreqDist 类,主要负责记录每个词出现的 次数】

NLP主要研究的是实现人与计算机之间用 自然 语言进行有效通信的各种理论和方法

 Anaconda 是一个集成了大量常用扩展包的环境,能够避免包配置或兼容等各类问题

 read_sql() 函数既可以读取整张数据表,又可以执行SQL语句

 数据清洗 的目的是让数据具有完整性、唯一性、权威性、合法性、一致性

 直方图 使用一系列高度不等的纵向条纹或线段表示数据分布的情况

 折线图 是用直线段将各数据点连接起来而组成的图形,以折线的方式显示数据的变化趋势

 重采样 是指将时间序列从一个频率转换到另一个频率的处理过程

 滑动窗口 指的是根据指定的单位长度来框住时间序列,从而计算框内的统计指标

 分词 是指按照一定的规则将由连续字符组成的语句划分成一个个独立词语的过程

 文本分类 的目的是将文本自动地归类为一种或多种预定义的

1.请简述创建 NumPy 数组的函数有哪些

答:创建NumPy数组的方法有 array()、zeros()、ones()、empty()、arange()函数

2.请简述什么是标量运算

答:大小相等的数组之间的任何算术运算都会将运算应用到元素级,同样,数组与标量的算术运算也会将那个标量值传播到各个元素。当数组进行相加、相减、乘以或除以一个数字时,这些称为标量运算

3.请简述什么是 DataFrame

答:DataFrame是一个类似于二维数组或表格(如excel)的对象,它每列的数据可以是不同的数据类型。与Series的结构相似,DataFrame的结构也是由索引和数据组成的,不同的是,DataFrame的索引不仅有行索引,还有列索引

4.请简述基于情感词典进行情感极性分析的实现流程

答:(1)对文本进行分词操作,从中找出情感词、否定词以及程度副词。

(2)判断每个情感词之前是否有否定词及程度副词,将它之前的否定词和程度副词划分为一组。如果存在否定词,则将情感词的情感权值乘以-1;如果有程度副词,就乘以程度副词的程度值。

(3)将所有组的得分加起来,得分大于0的归于正向,小于0的归于负向

5.请简述建立 ARIMA 模型的基本步骤

答:(1) 获取被观测的时间序列数据;

(2) 根据时间序列数据进行绘图,观测是否为平稳时间序列。对于非平稳时间序列,需要进行d阶差分运算,转化为平稳时间序列。

(3) 对以上平稳的时间序列,分别求得其自相关系数ACF和偏自相关系数PACF,通过对自相关图和偏自相关图的分析,得到最佳的阶层p和阶数q。

(4) 根据上述计算的d、q、p得到ARIMA模型,然后对模型进行检验

6.请列举几个常用的统计计算方法,并说明它们的作用

答:常用的统计方法有sum、mean、median、max、min等,其中sum 表示计算运算结果的和;mean 表示计算运算结果的平均值;median 表示计算运算结果的中位数;max/min 表示计算运算结果的最大值/最小值

7.请阅读下面一段程序:

import pandas as pd

date_list=['2015/06/01', '2017/06/01', '2016/08/01','2016.6.1','2018.6.1']

date_index=pd.to_datetime(date_list)

date_ser=pd.Series(np.arange(5), index=date_index)

date_ser.sort_index().truncate(after='2016-7-31')

运行上述程序,它最终执行的结果是什么

答:2015-06-01 0、2016-06-01 3、dtype: int32

8.请使用 NLTK 对“I like playing basketball.”进行分词操

答:import nltk sentence = "I like playing basketball." words = nltk.word_tokenize(sentence)

9.现有如下图所示的学生信息,请根据图中的信息完成以下操作

(1)根据年级信息为分组键,对学生信息进行分组,并输出大一学生信息。

(2)分别计算出四个年级中身高最高的同学。

(3)计算大一学生与大三学生的平均体重。

答:

import pandas as pd

students_data = pd.DataFrame({

    '年级':['大一','大二','大三', '大四','大二','大三', '大一','大三','大四'],

    '姓名':['李宏卓','李思真','张振海', '赵鸿飞','白蓉','马腾飞', '张晓凡','金紫萱','金烨'],

    '年龄':[18,19,20,21, 19,20,18,20,21],

    '身高':[175,165,178,175, 160,180,167,170,185],

    '体重':[65,60,70,76, 55,70,52,53,73]

})

grouped_data = students_data.groupby('年级')

Freshman = grouped_data.get_group('大一')

print(Freshman)

grouped_data = students_data.groupby('年级')[['姓名', '身高']].agg(max)

print(grouped_data)

data = students_data[students_data['年级'].isin(['大一', '大三'])]

# 计算平均体重

oneAvg = data[data['年级'] == '大一']['体重'].mean()

threeAvg = data[data['年级'] == '大三']['体重'].mean()

# 打印结果

print(f"大一学生的平均体重是:{round(oneAvg,2)}公斤")

print(f"大三学生的平均体重是:{round(threeAvg,2)}公斤")

10.现有如下图所示的两组数据,其中A组中B列数据存在缺失值,并且该列数据为int类型B组中的数据均为str类型。接下来,请对这些数据进行以下操作

(1)使用 DataFrame 创建这两组数据

(2)现在需要使用B组中的数据对A组中的缺失值进行填充并保持数据类型一致

(3)将合并后 A 组中索引名为 key 的索引重命名为 D

答:

import pandas as pd

import numpy as np

group_a = pd.DataFrame({'A': [2,3,5,2,3], 'B': ['5',np.nan,'2','3','6'], 'C': [8,7,50,8,2], 'key': [3,4,5,2,5]})

group_b = pd.DataFrame({'A': [3,3,3], 'B': [4,4,4], 'C': [5,5,5]})

print(group_a)

print(group_b)

group_a = group_a.combine_first(group_b)

group_a.rename(columns={'key':'D'})

11.中国已经成为了体育大国,从 2008 年的夏季奥运会到 2022 年的冬季奥运会

(1)计算中国男篮、女篮运动员的平均身高与平均体重

(2)统计中国篮球运动员的年龄分布情况

(3)计算中国篮球运动员的体质指数

答:

 import pandas as pd

# 指定CSV文件的路径

file_path = 'C:/Users/admin/运动员信息表.csv'

# 尝试使用不同的编码读取文件

try:

    # 尝试使用GBK编码读取文件

    df = pd.read_csv(file_path, encoding='gbk')

    print("文件读取成功,编码为GBK。")

except Exception as e:

    print(f"使用GBK编码读取文件失败: {e}")

# 按项目一列进行分组

data_group = df.groupby('项目')

# 输出篮球分组的信息

df_basketball = data_group.get_group('篮球')

print(df_basketball)

# 按性别分组

grouped = df.groupby('性别')

# 计算每个性别的平均身高和平均体重

average_height_weight = grouped[['身高(cm)', '体重(kg)']].mean()

# 打印结果

print("中国男篮运动员的平均身高:", round(average_height_weight,2).loc['男', '身高(cm)'])

print("中国男篮运动员的平均体重:", round(average_height_weight,2).loc['男', '体重(kg)'])

print("中国女篮运动员的平均身高:", round(average_height_weight,2).loc['女', '身高(cm)'])

print("中国女篮运动员的平均体重:", round(average_height_weight,2).loc['女', '体重(kg)'])

# 统计年龄分布情况

age_distribution = df['年龄(岁)'].value_counts().sort_index()

# 打印年龄分布情况

print("中国篮球运动员的年龄分布情况:")

print(age_distribution)

# 计算体质指数

df['BMI'] = df['体重(kg)'] / ((df['身高(cm)'] / 100) ** 2)

# 显示包含BMI的DataFrame

print("中国篮球运动员的体质指数:")

print(df[['姓名', '身高(cm)', '体重(kg)', 'BMI']])

12.有一组关于北京和天津地区的统计信息,

(1)检查重复数据,一旦发现有重复的数据,就需要将其进行删除。

(2)检查缺失值,为了保持数据的完整性,通常会使用某个数据填充

(3)检查异常值,一旦发现数据中存在异常值,通常先要对照原始数据进一步确认,如果是错误的数值,则直接使用正确的数值进行替换即可。

(4)对北京和天津数据进行合并

答:

import pandas as pd

# 指定CSV文件的路径

file_path = 'C:\Users\admin\北京地区信息.csv'

# 尝试使用不同的编码读取文件

try:

    # 尝试使用GBK编码读取文件

    df_beijing = pd.read_csv(file_path, encoding='gbk')

    print("文件读取成功,编码为GBK。")

except Exception as e:

    print(f"使用GBK编码读取文件失败: {e}")

# 指定CSV文件的路径

file_path = 'C:\Users\admin\天津地区信息.csv'

# 尝试使用不同的编码读取文件

try:

    # 尝试使用GBK编码读取文件

    df_tianjin = pd.read_csv(file_path, encoding='gbk')

    print("文件读取成功,编码为GBK。")

except Exception as e:

    print(f"使用GBK编码读取文件失败: {e}")

print(df.duplicated())

# 删除重复数据

df = df.drop_duplicates()

# 计算常住人口的平均数,设置为 float 类型并保留两位小数

population=float("{:.2f}".format(file_data_tianjinfo['常住人口(万人)'].mean()))

# 以字典映射的形式将需要填充的数据进行对应

values={'常住人口(万人)':population}

file_data_tianjinfo=file_data_tianjinfo.fillna(value=values)

合并数据

print(df_beijing.index)

print(df_tianjin.index)

# 如果需要,可以重置索引

df_beijing = df_beijing.reset_index(drop=True)

df_tianjin = df_tianjin.reset_index(drop=True)

# 合并数据

df_combined = pd.concat([df_beijing, df_tianjin], ignore_index=True)

13. 给定一个餐饮订单数据文件(meal_order_detail.xlsx),

(1)读取excel文件中的数据到 DataFrame 中。

(2)使用索引操作选择特定列的数据。

(3)对 DataFrame 中的数据进行算术运算,如计算订单的总金

(4)对 DataFrame 进行排序,如按照订单金额从高到低排序。

(5)使用统计功能,计算各个菜品的销售总量和销售总金额。

(6)使用层次化索引,对菜品进行分类汇总。

答:

# 指定CSV文件的路径

file_path = 'C:/Users/admin/meal_order_detail.xlsx'

# 尝试使用不同的编码读取文件

try:

    # 尝试使用默认编码读取文件

    df = pd.read_excel(file_path)

    print("文件读取成功,使用默认编码。")

except Exception as e:

print(f"使用默认编码读取文件失败: {e}")

selected_columns_df=df[['dishes_name','amounts']]

print("Selected Columns:")

print(selected_columns_df.head()) # 打印选定的列的前几行

# 计算每个菜品的总价,并创建一个新的列 'total_price' 来存储结果

df['total_price'] = df['amounts'] * df['counts']

# 打印菜品名称、数量、单价和总价,这里假设 'dishes_name' 是菜品名称的列名

print("\n菜品名称\t数量\t单价\t总价")

print(df[['dishes_name', 'counts', 'amounts', 'total_price']].head())

sorted_df=df.sort_values(by='total_price', ascending=False)

print("\n排序:")

print(sorted_df[['dishes_name', 'total_price']].head())

sales_summary = df.groupby('dishes_name').agg({

    'counts': 'sum',  # 每个菜品的数量总和

    'amounts': ['sum', 'mean']  # 每个菜品的总金额和平均单价

}).rename(columns={

    'counts_sum': 'total_sold',  # 重命名数量总和的列

    'amounts_sum': 'total_revenue',  # 重命名总金额的列

    'amounts_mean': 'average_price'  # 重命名平均单价的列

})

print("\n各个菜品的销售总量和销售总金额:")

print(sales_summary)

sales_summary = df.groupby(['parent_class_name', 'dishes_name']).agg({

    'counts': 'sum',  # 计算每个菜品的总数量

    'amounts': 'sum'   # 计算每个菜品的总金额

}).rename(columns={

    'counts': 'total_sold',  # 重命名 'counts' 列为 'total_sold'

    'amounts': 'total_revenue'  # 重命名 'amounts' 列为 'total_revenue'

}).sort_index(axis=1)  # 对索引列进行排序

# 打印结果

print("\nSales Summary by Parent Class and Dish:")

print(sales_summary)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值