import pandas as pd
import warnings

warnings.filterwarnings('ignore')
df = pd.read_csv("./python.csv")
df = df.drop_duplicates()  # 去除重复数据
# 公司
num = ['50-150人', '150-500人', '1000-5000人', '少于50人', '500-1000人', '10000人以上', '5000-10000人']
for i in df['公司人数']:
    if i not in num:
        index_ = df[df['公司人数'] == i].index
        df.drop(index=index_, inplace=True)

map_dict = {'上海市': ['上海'],
            '云南省': ['昆明',
                    '曲靖',
                    '玉溪',
                    '昭通地',
                    '楚雄彝族自治州',
                    '红河哈尼族彝族自治州',
                    '文山壮族苗族自治州',
                    '思茅',
                    '西双版纳傣族自治州',
                    '大理白族自治州',
                    '保山地',
                    '德宏傣族景颇族自治州',
                    '丽江地',
                    '怒江傈僳族自治州',
                    '迪庆藏族自治州',
                    '临沧地', "楚雄", "大理"],
            '内蒙古自治区': ['呼和浩特',
                       '包头',
                       '乌海',
                       '赤峰',
                       '呼伦贝尔',
                       '兴安盟',
                       '通辽',
                       '锡林郭勒盟',
                       '乌兰察布盟',
                       '伊克昭盟（鄂尔多斯旧称）',
                       '巴彦淖尔盟',
                       '阿拉善盟'],
            '北京市': ['北京'],
            '台湾省': ['台湾', '台北', '高雄', '基隆', '台中', '台南', '新竹', '嘉义'],
            '吉林省': ['长春', '吉林', '四平', '辽源', '通化', '白山', '松原', '白城', '延边朝鲜族自治州'],
            '四川省': ['成都',
                    '自贡',
                    '攀枝花',
                    '泸州',
                    '德阳',
                    '绵阳',
                    '广元',
                    '遂宁',
                    '内江',
                    '乐山',
                    '南充',
                    '宜宾',
                    '广安',
                    '达川地',
                    '雅安地',
                    '阿坝藏族羌族自治州',
                    '甘孜藏族自治州',
                    '凉山彝族自治州',
                    '巴中地',
                    '眉山地',
                    '资阳地'],
            '天津市': ['天津'],
            '宁夏回族自治区': ['银川', '石嘴山', '吴忠', '固原地', '中 卫 '],
            '安徽省': ['合肥',
                    '芜湖',
                    '蚌埠',
                    '淮南',
                    '马鞍山',
                    '淮北',
                    '铜陵',
                    '安庆',
                    '黄山',
                    '滁州'
                    '阜阳',
                    '宿州',
                    '六安',
                    '宣城',
                    '巢湖',
                    '池州', '亳州'],
            '山东省': ['济南',
                    '青岛',
                    '淄博',
                    '枣庄',
                    '东营',
                    '烟台',
                    '潍坊',
                    '济宁',
                    '泰安',
                    '威海',
                    '日照',
                    '莱芜',
                    '临沂',
                    '德州',
                    '聊城',
                    '滨州地',
                    '菏泽地'],
            '山西省': ['太原', '大同', '阳泉', '长治', '晋城', '朔州', '忻州', '吕梁', '晋中', '临汾', '运城'],
            '广东省': ['广州',
                    '韶关',
                    '深圳',
                    '珠海',
                    '汕头',
                    '佛山',
                    '江门',
                    '湛江',
                    '茂名',
                    '肇庆',
                    '惠州',
                    '梅州',
                    '汕尾',
                    '河源',
                    '阳江',
                    '清远',
                    '东莞',
                    '中山',
                    '潮州',
                    '揭阳',
                    '云浮',
                    '广东', '广东省'],
            '广西壮族自治区': ['南宁',
                        '柳州',
                        '桂林',
                        '梧州',
                        '北海',
                        '防城港',
                        '钦州',
                        '贵港',
                        '玉林',
                        '崇左',
                        '来宾',
                        '贺州',
                        '百色',
                        '河池'],
            '新疆维吾尔自治区': ['乌鲁木齐',
                         '克拉玛依',
                         '吐鲁番地',
                         '哈密地',
                         '昌吉回族自治州',
                         '博尔塔拉蒙古自治州',
                         '巴音郭楞蒙古自治州',
                         '阿克苏地',
                         '克孜勒苏柯尔克孜自治州',
                         '喀什地',
                         '和田地',
                         '伊犁哈萨克自治州',
                         '塔城地',
                         '阿勒泰地',
                         '省直辖行政单位'],
            '江苏省': ['南京',
                    '无锡',
                    '徐州',
                    '常州',
                    '苏州',
                    '南通',
                    '连云港',
                    '淮安(原淮阴）',
                    '盐城',
                    '扬州',
                    '镇江',
                    '泰州',
                    '宿迁',
                    '常熟', '太仓', '昆山', '淮安'],
            '江西省': ['南昌', '景德镇', '萍乡', '九江', '新余', '鹰潭', '赣州', '宜春', '上饶', '吉安', '抚州'],
            '河北省': ['石家庄', '唐山', '秦皇岛', '邯郸', '邢台', '保定', '张家口', '承德', '沧州', '廊坊', '衡水'],
            '河南省': ['郑州',
                    '开封',
                    '洛阳',
                    '平顶山',
                    '安阳',
                    '鹤壁',
                    '新乡',
                    '焦作',
                    '濮阳',
                    '许昌',
                    '漯河',
                    '三门峡',
                    '南阳',
                    '商丘',
                    '信阳',
                    '周口',
                    '驻马店地',
                    '省直辖行政单位'],
            '浙江省': ['杭州', '宁波', '温州', '嘉兴', '湖州', '绍兴', '金华', '衢州', '舟山', '台州', '丽水', "义乌", "浙江省"],
            '海南省': ['省直辖行政单位', '海口', '三亚'],
            '湖北省': ['武汉',
                    '黄石',
                    '十堰',
                    '宜昌',
                    '襄樊',
                    '襄阳',
                    '鄂州',
                    '荆门',
                    '孝感',
                    '荆州',
                    '黄冈',
                    '咸宁',
                    '随州',
                    '恩施土家族苗族自治州',
                    '省直辖行政单位', '湖北省', "仙桃"],
            '湖南省': ['长沙',
                    '株洲',
                    '湘潭',
                    '衡阳',
                    '邵阳',
                    '岳阳',
                    '常德',
                    '张家界',
                    '益阳',
                    '郴州',
                    '永州',
                    '怀化',
                    '娄底地',
                    '湘西土家族苗族自治州'],
            '澳门特别行政区': ['澳门'],
            '甘肃省': ['兰州',
                    '嘉峪关',
                    '金昌',
                    '白银',
                    '天水',
                    '酒泉地',
                    '张掖地',
                    '武威地',
                    '定西地',
                    '陇南地',
                    '平凉地',
                    '庆阳地',
                    '临夏回族自治州',
                    '甘南藏族自治州'],
            '福建省': ['福州', '厦门', '宁德', '莆田', '泉州', '漳州', '龙岩', '三明', '南平', '福建省'],
            '西藏自治区': ['拉萨', '昌都地', '山南地', '日喀则地', '那曲地', '阿里地', '林芝地'],
            '贵州省': ['贵阳',
                    '六盘水',
                    '遵义',
                    '铜仁地',
                    '黔西南布依族苗族自治州',
                    '毕节地',
                    '安顺地',
                    '黔东南苗族侗族自治州',
                    '黔南布依族苗族自治州'],
            '辽宁省': ['沈阳',
                    '大连',
                    '鞍山',
                    '抚顺',
                    '本溪',
                    '丹东',
                    '锦州',
                    '营口',
                    '阜新',
                    '辽阳',
                    '盘锦',
                    '铁岭',
                    '朝阳',
                    '葫芦岛'],
            '重庆市': ['重庆'],
            '陕西省': ['西安', '铜川', '宝鸡', '咸阳', '渭南', '延安', '汉中', '安康地', '商洛地', '榆林地'],
            '青海省': ['西宁',
                    '海东地',
                    '海北藏族自治州',
                    '黄南藏族自治州',
                    '海南藏族自治州',
                    '果洛藏族自治州',
                    '玉树藏族自治州',
                    '海西蒙古族藏族自治州'],
            '香港特别行政区': ['香港'],
            '黑龙江省': ['哈尔滨',
                     '齐齐哈尔',
                     '鸡西',
                     '鹤岗',
                     '双鸭山',
                     '大庆',
                     '伊春',
                     '七台河',
                     '牡丹江',
                     '黑河',
                     '绥化',
                     '大兴安岭地', '佳木斯']}

df['公司地址'] = df['公司地址'].apply(lambda x: x.split('·')[0])

df['省份'] = df['公司地址'].apply(lambda x: x.split('·')[0])
index_ = df['公司地址'].apply(lambda x: x.split('·')[0]).value_counts().index


# 根据map_dict
def map(area):
    for j in map_dict:
        if area in map_dict[j]:
            return j


df['省份'] = df['省份'].apply(lambda x: map(x))
df['省份'].isnull().sum()

abnormal = ['元/月', '千/年', '千/天', '千/日', '万/日', '万/天']
normal = ['万/月', '千/月', '万/年', '元/天']
df['工资'] = df['工资'].apply(lambda x: x.split('·')[0])
for i in abnormal:
    index = df[df['工资'].str.contains(i)]['工资'].index
    df.drop(index=index, inplace=True)
for i in normal:
    index = df[df['工资'].str.contains(i)]['工资'].index
    print(index)
    df.drop(index=index, inplace=True)

df['工资1'] = df['工资'].apply(lambda x: x.split("-"))
df['工资1'] = df['工资1'].astype('str')
for i in df['工资1']:
    if len(eval(i)) < 2:
        index = df[df['工资1'] == i].index
        df.drop(index=index, inplace=True)
df['工资1'] = df['工资1'].apply(lambda x: eval(x))

low_list = []
height_list = []
for i in df['工资1'].values:
    low = i[0]
    height = i[1]
    if low[-1] == '千':
        low1 = float(low[:-1]) * 1000
    elif low[-1] == '万':
        low1 = float(low[:-1]) * 10000
    else:

        if height[-1] == '千':
            low1 = float(low) * 1000
        else:
            low1 = float(low) * 10000
    if height[-1] == '千':
        height1 = float(height[:-1]) * 1000
    elif height[-1] == '万':
        height1 = float(height[:-1]) * 10000

    low_list.append(low1)
    height_list.append(height1)

df['最低工资'] = low_list
df['最高工资'] = height_list
# 学历
education = ['本科', '大专', '硕士', '博士', '中技/中专']
for i in df['学历']:
    if i not in education:
        index_ = df[df['学历'] == i].index
        df.drop(index=index_, inplace=True)

print(df.shape)
del df["工资1"]
df.to_csv("./data_clean.csv", index=False)
