python数据处理(招聘信息薪资字段的处理)

爬取了51job上面的数据,其中有薪资字段需要做处理
数据部分格式如下图:
python数据处理(招聘信息薪资字段的处理)_第1张图片
处理好之后的数据截图:
python数据处理(招聘信息薪资字段的处理)_第2张图片

处理需求:

1.把 “salary” 列中带“ 万/年 元/天 ”关键字的行都删除
2.把 “salary” 列中 带“千/月” 关键字的数据变换一下 如“6-9千/月”转化为“6k-9k”
3.把 “salary” 列中 带“万/月” 关键字的数据变换一下 如“1-1.5万/月”转换为"10k-15k"

处理代码:

# -*- coding: utf-8 -*-
import csv
import codecs
import pandas as pd
import numpy as np


class DataProcessing(object):
    """
    # 1.把 “salary” 列中带“ 万/年 元/天 ”关键字的行都删除
    # 2.把  “salary” 列中 带“千/月” 关键字的数据变换一下  如“6-9千/月”转化为“6k-9k”
    # 3.把  “salary” 列中 带“万/月” 关键字的数据变换一下 如“1-1.5万/月”转换为"10k-15k"
    """
    def __init__(self, name='data.csv'):
        self.f = codecs.open(name, 'w', encoding='utf-8')
        self.csv = csv.writer(self.f)

    def __del__(self):
        self.f.close()

    def add(self, data_list):
        self.csv.writerow(data_list)
        print("********已经成功存储数据***************")

    def read(self, file_name):
        csv_data = pd.read_csv(file_name, sep=",", header=0)
        titles = csv_data.columns.values.tolist()
        self.add(titles)
        for index, row in csv_data.iterrows():
            salary = str(row["salary"])
            res = row.values.tolist()
            res = ['' if str(i) == "nan" else i for i in res]
            value = salary
            "把 “salary” 列中带“ 万/年 元/天 ”关键字的行都删除"
            if salary.endswith("万/年") or salary.endswith("元/天"):
                continue
            # "“salary” 列中 带“千/月” 关键字的数据变换一下  如“6-9千/月”转化为“6k-9k”"
            elif salary.endswith("千/月"):
                value = salary.replace("千/月", '')
                value = value.split("-")
                value = "{}k-{}k".format(value[0], value[1])
            # "把  “salary” 列中 带“万/月” 关键字的数据变换一下 如“1-1.5万/月”转换为"10k-15k"
            elif salary.endswith("万/月"):
                value = salary.replace("万/月", '')
                value = value.split("-")
                value = "{}k-{}k".format(float(value[0])*10, float(value[1])*10)
            print("转变前:" + salary, '-----转变后:', value)
            res[2] = value
            print(res)
            self.add(res)


dataProcessing = DataProcessing(name="beijing.csv")
dataProcessing.read(file_name="beijing11.csv")

你可能感兴趣的:(python,pandas)