df.T.to_csv(resultFileName,encoding="utf-8-sig",index=True)什么意思
时间: 2024-05-24 22:13:27 浏览: 5
这行代码的意思是将DataFrame转置(行列互换),并将转置后的结果保存为一个CSV文件,文件名为resultFileName。encoding="utf-8-sig"表示使用UTF-8编码保存文件,并在文件开头添加BOM(Byte Order Mark)标记,以便在读取文件时正确识别编码格式。index=True表示将行索引也保存到CSV文件中。
相关问题
from jieba import posseg import requests from bs4 import BeautifulSoup import pandas as pd # 爬取教师信息 url = 'http://lxy.hzau.edu.cn/szll/jsml.htm' response = requests.get(url) response.encoding = 'utf-8' soup = BeautifulSoup(response.text, 'html.parser') teacher_nodes = soup.select('td a') teacher_info = [] for node in teacher_nodes: teacher_name = node.text.strip() teacher_link = 'http://lxy.hzau.edu.cn/' + node['href'] teacher_info.append((teacher_name, teacher_link)) # 整理数据并保存为CSV文件 df = pd.DataFrame({'teacher_name': [name for name, _ in teacher_info], 'teacher_link': [link for _, link in teacher_info]}) df.to_csv('Info.csv', encoding='utf-8-sig', index=False)请用R重构这段代码
以下是使用 R 重构的代码:
```R
library(rvest)
library(dplyr)
# 爬取教师信息
url <- 'http://lxy.hzau.edu.cn/szll/jsml.htm'
response <- read_html(url, encoding = 'utf-8')
teacher_nodes <- response %>%
html_nodes('td a')
teacher_info <- teacher_nodes %>%
purrr::map(function(node) {
teacher_name <- node %>% html_text(trim = TRUE)
teacher_link <- node %>% html_attr('href') %>% paste0('http://lxy.hzau.edu.cn/', .)
list(teacher_name = teacher_name, teacher_link = teacher_link)
})
# 整理数据并保存为CSV文件
df <- teacher_info %>%
purrr::map_df(~ as.list(.)) %>%
select(teacher_name, teacher_link)
write_csv(df, 'Info.csv', bom = TRUE)
```
使用 R 的 rvest 包来进行网页爬取和解析,使用 purrr 包来进行函数式编程,使用 dplyr 包来进行数据整理和处理,并使用 readr 包的 write_csv 函数来将数据保存为 CSV 文件。
# 读取数据 df = pd.read_csv(city+'_'+kind+'_'+'lagou.csv', encoding='utf-8') # 数据清洗,剔除实习岗位 df.drop(df[df['职位名称'].str.contains('实习')].index,inplace=True) pattern = '\d+' df['work_year'] = df['工作经验'].str.findall(pattern) print('work_year:', df['work_year']) # 数据处理后的工作年限 avg_work_year = [] # 工作年限 for i in df['work_year']: # 如果工作经验为'不限'或应届毕业生',那么匹配值为空,工作年限为0 if len(i) == 0: avg_work_year.append(0) # 如果匹配值为一个数值,那么返回该数值 elif len(i) == 1: avg_work_year.append(int(''.join(i))) # 如果匹配值为一个区间,那么取平均值 else: num_list = [int(j) for j in i] avg_year = sum(num_list)/2 avg_work_year.append(avg_year) print('avg_work_year:',avg_work_year) df['工作经验'] = avg_work_year df['salary'] = df['工资'].str.findall(pattern) # 月薪 avg_salary = [] for k in df['salary']: int_list = [int(n) for n in k] # 存在工资只有一个区间,[20],所以用[-1]. avg_wage = int_list[0] + (int_list[-1] - int_list[0]) / 4 avg_salary.append(avg_wage) df['月工资'] = avg_salary df['学历要求'] = df['学历要求'].replace('不限', '大专') df.to_csv(city+'_'+kind+'_'+'lagou_finall.csv', index=False, encoding='utf-8_sig') plt.rcParams['font.sans-serif'] = ['simhei'] plt.rcParams['font.serif'] = ['simhei']
这段代码的作用是读取一个名为 city+'_'+kind+'_'+'lagou.csv' 的 CSV 文件,并对文件进行数据清洗,剔除实习岗位。然后通过正则表达式匹配工作经验和工资,并计算平均工作年限和月薪。接着,将学历要求中的“不限”替换为“大专”,并将处理后的数据保存为一个名为 city+'_'+kind+'_'+'lagou_finall.csv' 的新的 CSV 文件。最后,使用 matplotlib 库设置字体,并可以进行数据可视化分析。