模块一 语法基础与算法分析
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()