Python编程实训(杂笔)

模块一 语法基础与算法分析

1.for i, num in enumerate(nums)

   i为迭代元素下标,num为迭代元素

2.for i in range(1,len(nums))

   表示循环从1到len(nums)-1

3.sum=arr.count(arr[i])

   sum表示元素arr[i]再arr中重复的次数

4.math.ceil(x) 方法将 x 向上舍入到最接近的整数,math.floor(x)方法将数字x向下舍入到最接近的整数。

5.words = st.split("#", 1)

   words表示将字符串st以"#"为分割符分割出的两个元素的集合

6.word.isdigit():判断字符串是否只由数字组成

   word.isupper():判断字符串中所有的字母是否都为大写

   word.istitle():检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

   word.islower():字符串是否由小写字母组成

模块二 网页处理与文本分析

网页处理

1.使用 BeautifulSoup 库将响应内容解析成一个 BeautifulSoup 对象 soup

response = requests.get(url)
response.encoding = "utf-8"
soup = bs4.BeautifulSoup(response.text, "html.parser")

2.遍历网页元素

 for i in soup.select('tbody tr')
 遍历tbody标签中包含的tr标签元素

文本分析

1.从指定的 URL 中获取文本文件的内容,并将其保存到 text 变量中

response=requests.get("http://72.itmc.org.cn:80/JS001/data/user/15556/61/fj_chiffon_lady_dress.txt")
response.encoding = "utf-8"
text = response.text

2.将文本内容转小写,并保存

text=text.lower()

3.对文本内容进行分词处理

//不使用jieba库,仅用正则表达式
pattern = r'\b\w{3,}\b'  # 至少3个字母的单词
words = re.findall(pattern, text)
//使用jieba库,且可以划分词性
words = jieba.posseg.cut(text)
filtered_words = []
for word, flag in words:
    if flag in ["n", "nr", "ns"]:
       filtered_words.append(word)

4.使用 TF-IDF 分析器提取关键词

//返回文本中 TF-IDF 最大的前5个关键词的集合
keywords = analyse.tfidf("".join(filtered_words), topK=5)
import jieba.analyse

jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

sentence :为待提取的文本
topK: 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
withWeight : 为是否一并返回关键词权重值,默认值为 False
allowPOS : 仅包括指定词性的词,默认值为空,即不筛选

模块三 数据处理与分析

1.从指定的 URL读取 csv /xsxl文件并将其存储到 chipo 变量中

//读取csv文件
chipo = pd.read_csv(url)
//读取xlsl文件
data = pd.read_excel(url)
//读取xlsl文件中的'基本薪资'表,'上班通勤'表
df_xz = pd.read_excel(url, sheet_name='基本薪资')
df_tq = pd.read_excel(url, sheet_name='上班通勤')

2.数据处理

//将数据中的NaN的值替换为'banana'
order_data['choice_description'].fillna('banana', inplace=True)
//去掉price为空的数据
data = data.dropna(subset=['price'])
//将sales_num为空的数据填充为0
data['sales_num'] = data['sales_num'].fillna(0)
//使用 chipo DataFrame 对象选择了 'item_name' 和 '金额' 两列,并通过 groupby('item_name') 对 'item_name' 进行分组,然后使用 sum() 函数对每个分组进行求和,并使用 round(2) 函数将结果保留两位小数,最后,将结果存储到名为 df_ret 的新 DataFrame 中。
df_ret = chipo[['item_name', '金额']].groupby('item_name').sum().round(2)
//将 df_xz 和 df_tq 两个 DataFrame 对象进行合并,通过 left_on='姓名' 和 right_on='姓名' 指定了合并的键
df_total = pd.merge(df_xz, df_tq, left_on='姓名', right_on='姓名')

3.数据分析

//统计数据中order_data为 NaN 的数量
num = int(order_data['choice_description'].isna().sum())

//获取df_ret表中'金额'的最大值,并将其赋值给max
max=df_ret['金额'].max()
//获取df_ret表中'金额'等于max的数据的第一列,并将其赋值给name
name=df_ret.loc[df_ret['金额'] == max].index[0]
//计算df每一行的平均值,并将其赋值给m
m=df.mean(1)
//计算df每一列的平均值,并将其赋值给n
m=df.mean(0)
//将df表中'avg'列转换为list类型
list=df['avg'].tolist()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值