excel矩阵小tips

(1)矩阵乘法:

最终乘积矩阵,要选中乘积的所有单元格,如此例中,乘积矩阵为2X2,即选中4个单元格,然后输入函数MMULT(矩阵1,矩阵2),按shift+ctrl+enter,即可出来结果。


(2)将复制的一行数,转变为一列数(即矩阵转置)


选中要变为一列的数,ctrl+C(复制),选中要复制到的区域(选一个单元格即可),右键,


选择最右边的【选择性粘贴】


将最下面【转置】勾选


即转换成功。对于矩阵使用起来,非常方便。

(3)开根号

开平方:SQRT(选中的)

      或 =选中的单元格^(1/2)

开n次方(3,4…)

      = 选中的单元格^(1/n),如=8^(1/3)

(4)保留n位小数

单纯的在“设置单元格格式”-数字-数值,里改变小数位数,只是使看起来小数位数符合需求,但数值没有发生变化。

如果想保留4位小数,则

excel最上面“文件”-高级-计算此工作簿时-,将【将精度设为所显示的精度】选项勾选即可。



<think> 我们按照用户需求逐步实现 1. 读取tips_mod.xls文件到DataFrame并显示前5行 2. 找出聚餐时间段列的所有类别 3. 统计各列空值数目并删除全为空值的行 4. 替换'Diner'为'Dinner' 5. 用均值填充小费列空值 6. 保留重复行1行(即重复行只保留第一次出现的行) 7. 增加小费消费比列(小费/总消费) 8. 用map函数修改性别列值(将英文改为中文) 9. 用箱线图检测小费消费比异常值(这里我们只画出箱线图,不进行删除等操作) 10. 用离差标准法标准化小费消费比列 11. 计算相关系数矩阵 12. 计算消费列与其他列的相关系数(这里消费列应该是总消费,即'total_bill'列) 13. 将聚餐时间段列转换为独热编码 注意:由于用户没有指定具体的列名,我们根据常见的tips数据集列名来假设: - 聚餐时间段列:我们假设列名为'time'(在原始tips数据集中,time列有'Dinner'和'Lunch') - 小费列:我们假设列名为'tip' - 总消费列:我们假设列名为'total_bill' - 性别列:我们假设列名为'sex'(原始数据中是英文:'Male','Female') 但用户数据中出现了'Diner'(应该是错误拼写)和成绩等级?用户最后提到将成绩等级列表转换为独热编码,但前面没有提到成绩等级列。根据用户描述,我们只看到聚餐时间段列(time)需要独热编码。所以最后一步我们是对聚餐时间段列进行独热编码。 由于用户提供的数据集名为'tips_mod.xls',可能对原始tips数据集进行了修改。因此,我们按照用户描述的列名操作,如果遇到列名不一致,需要调整。 步骤: 1. 导入必要的库 2. 读取Excel文件 3. 逐步处理 注意:由于用户要求显示前5行,我们在处理过程中会适时显示。 开始代码实现: </think> 我将使用Python逐步解决您的数据处理需求,重点使用pandas和matplotlib库。 ```python # 1. 导入所需库 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler # 2. 读取Excel文件并显示前5行 tips = pd.read_excel('tips_mod.xls') print("前5行数据:") print(tips.head()) # 3. 找出聚餐时间段列的所有类别 time_categories = tips['time'].unique() print("\n聚餐时间段的所有类别:", time_categories) # 4. 统计各列空值数目并删除全为空值的行 print("\n各列空值数量:") print(tips.isnull().sum()) # 删除全为空值的行 tips = tips.dropna(how='all') print("\n删除全空行后的行数:", len(tips)) # 5. 替换拼写错误 tips['time'] = tips['time'].replace('Diner', 'Dinner') # 6. 用均值填充小费列空值 tip_mean = tips['tip'].mean() tips['tip'] = tips['tip'].fillna(tip_mean) # 7. 保留重复行中的第一行 tips = tips.drop_duplicates(keep='first') # 8. 增加小费消费比列 tips['tip_ratio'] = tips['tip'] / tips['total_bill'] # 9. 用map函数修改性别列值 gender_map = {'Male': '男', 'Female': '女'} tips['sex'] = tips['sex'].map(gender_map) # 10. 用箱线图检测小费消费比异常值 plt.figure(figsize=(8, 6)) plt.boxplot(tips['tip_ratio'].dropna(), vert=False) plt.title('小费消费比箱线图') plt.xlabel('小费消费比') plt.show() # 11. 用离差标准法标准化小费消费比列 scaler = StandardScaler() tips['tip_ratio_standardized'] = scaler.fit_transform(tips[['tip_ratio']]) # 12. 计算相关系数矩阵 corr_matrix = tips.corr(numeric_only=True) print("\n相关系数矩阵:") print(corr_matrix) # 13. 计算消费列与其他列的相关系数 total_bill_corr = tips.corr(numeric_only=True)['total_bill'] print("\n消费列与其他列的相关系数:") print(total_bill_corr) # 14. 将聚餐时间段列转换为独热编码 time_dummies = pd.get_dummies(tips['time'], prefix='time') tips = pd.concat([tips, time_dummies], axis=1) print("\n独热编码后的DataFrame:") print(tips.head()) ``` ### 关键步骤解释: 1. **数据读取与预览**:使用`pd.read_excel()`读取Excel文件,`.head()`查看前5行 2. **类别统计**:`.unique()`获取聚餐时间段的所有唯一值[^1] 3. **空值处理**:`.isnull().sum()`统计空值,`.dropna()`删除全空行 4. **数据清洗**:`.replace()`修正拼写错误,`.fillna()`用均值填充 5. **重复值处理**:`.drop_duplicates()`保留唯一行 6. **特征工程**:创建新列`tip_ratio`(小费/总消费) 7. **值映射**:`.map()`函数转换性别值为中文 8. **异常检测**:箱线图可视化小费消费比分布 9. **数据标准化**:`StandardScaler()`实现离差标准化 10. **相关性分析**:`.corr()`计算相关系数矩阵 11. **独热编码**:`pd.get_dummies()`转换分类变量
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值