python数据挖掘编程题(@飞桨AI Studio星河社区 @Github Codespace)

1.编写一个Python程序,读取一个文本文件(假设文件名为test.txt, 内容为一些英文句子、每个句子占一行),将每个单词首字母大写,统计文件中单词的总数,并将结果写入另一个文件result.txt中.
# 同时打开test.txt用于读取,result.txt用于写入,均使用utf-8编码
with open("test.txt", "r", encoding="utf-8") as fin, open("result.txt", "w", encoding="utf-8") as fout:
    total = 0  # 初始化单词总数
    for line in fin:  # 遍历输入文件的每一行
        words = line.strip().split()  # 去除行首尾空白并按空格分割为单词列表
        total += len(words)  # 累加本行单词数到总数
        # 将每个单词首字母大写后写入输出文件,并以空格分隔,最后换行
        fout.write(" ".join(w.capitalize() for w in words) + "\n")
    # 在输出文件末尾写入单词总数
    fout.write(f"\nTotal words: {total}\n")

编程题2

2.1根据”超市营业额2.xlsx”,查看单日交易总额最小的3天的交易数据,并查看这3天是周几。
import pandas as pd
df = pd.read_excel('./data/超市营业额2.xlsx')
df = df.loc[:,['日期', '交易额']].groupby(['日期'], as_index=False).sum()
df = df.nsmallest(3, '交易额')
df['weekday'] = pd.to_datetime(df['日期']).dt.day_name()
print(df)
           日期  交易额   weekday
24  2023-03-25  8498.0  Saturday
20  2023-03-21  8661.0   Tuesday
9   2023-03-10  8789.0    Friday

在这里插入图片描述

2.2根据“超市营业额2.xlsx”文件,绘制饼状图展示该月各个柜台营业额在交易总额中的占比
import pandas as pd
import matplotlib.pyplot as plt

#设置图形中使用中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
# 设置图形正常显示负号
plt.rcParams['axes.unicode_minus'] = False

df = pd.read_excel('./data/超市营业额2.xlsx', sheet_name='Sheet1', usecols=['柜台', '交易额'])
df = df.groupby(by='柜台', as_index=False).sum()
df.plot(x='柜台', y='交易额', kind='pie', labels=df['柜台'].values)
plt.legend()
plt.show()
  • 或者修改代码如下:
import pandas as pdimport matplotlib.pyplot as plt
#设置图形中使用中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']# 设置图形正常显示负号
plt.rcParams['axes.unicode_minus'] = False
df = pd.read_excel('./data/超市营业额2.xlsx', sheet_name='Sheet1')
df = df.loc[:,['柜台', '交易额']].groupby(by='柜台', as_index=False).sum()
df.plot(x='柜台', y='交易额', kind='pie', labels=df['柜台'].values)
plt.legend()
plt.show()

在这里插入图片描述

虚拟环境运行(@飞桨AI Studio星河社区)

在这里插入图片描述

虚拟环境运行(@Github Codespace)

在这里插入图片描述

总结conda运行问题后的代码如下所示

在这里插入图片描述

  • 备注:
求解其中整数的元素和
mylist=[1.2, 'abc', 3.45,'a']
result=[i for i in mylist if isinstance(i, (int, float)]
sum_result=sum(result)
print(sum_result)
4.65
矩阵乘积第一个是1-9改为3×3按照行填充,第二个为10-18按照行填充为3×3矩阵
import numpy as np
a=np.arange(1, 10).reshape(3, 3)
b=np.arange(1019).reshape(33)
print(a)
print(b)
print(a*b)
[[1 2 3]
 [4 5 6] 
 [7 8 9]]

[[10 11 12]
 [13 14 15] 
 [16 17 18]]

[[ 10  22  36] 
 [ 52  70  90] 
 [112 136 162]]
矩阵乘积第一个是1-9改为3×3按照列填充,第二个为10-18按照列填充为3x3矩阵
import numpy as np
a=np.arange(1 ,10).reshape(3,3, order='F')
b=np.arange(10,19).reshape(3,3, order='F')
print(a)
print(b)
print(a*b)
[[1 4 7]
 [2 5 8] 
 [3 6 9]]

[[10 13 16] 
 [11 14 17] 
 [12 15 18]]

[[ 10  52 112] 
 [ 22  70 136] 
 [ 36  90 162]]
给定矩阵a,b,计算numpy数组乘积
import numpy as np
a=np.array([1, 2, 3])
b=np.array([4, 5, 6])
print(a*b)
[ 4 10 18]

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kaka_R-Py

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值