Python:获取“列表索引超出范围”错误;我知道为什么但不知道如何解决这个问题

scy0003

我目前正在从事一个数据科学项目。想法是清除“glassdoor_jobs.csv”中的数据,并以更易于理解的方式呈现它。

import pandas as pd

df = pd.read_csv('glassdoor_jobs.csv')

#salary parsing
#Removing "-1" Ratings
#Clean up "Founded"
#state field
#Parse out job description

df['hourly'] = df['Salary Estimate'].apply(lambda x: 1 if 'per hour' in x.lower() else 0)
df['employer_provided'] = df['Salary Estimate'].apply(lambda x: 1 if 'employer provided salary' in x.lower() else 0)
df = df[df['Salary Estimate'] != '-1']
Salary = df['Salary Estimate'].apply(lambda x: x.split('(')[0])
minus_Kd = Salary.apply(lambda x: x.replace('K', '').replace('$',''))

minus_hr = minus_Kd.apply(lambda x: x.lower().replace('per hour', '').replace('employer provided salary:', ''))

df['min_salary'] = minus_hr.apply(lambda x: int(x.split('-')[0]))
df['max_salary'] = minus_hr.apply(lambda x: int(x.split('-')[1]))

我在最后一行收到错误。挖掘了一下之后,我发现在 minus_hr 中,一些“薪资估算”只有一个数字而不是范围:

指数 薪资预估
0 150
1 58
2 130
3 125-150
4 110-140
5 200
6 67-77

等等。现在我试图弄清楚如何解决“列表索引超出范围”,并使 max_salary 与只有一个值的单元格的 min_salary 相同。

我还试图获得最低和最高工资之间的平均值,如果单元格只有一个值,则将该值设为平均值

所以最后,像索引 0 这样的东西看起来像:

指数 分钟 最大限度 平均数
0 150 150 150
恰兰海恩斯

您必须在某处添加条件语句。

df['min_salary'] = minus_hr.apply(lambda x: int(x.split('-')[0]) if '-' in x else x)

上面可能会这样做,或者您可以定义一个函数。

def max_salary(cell_value):
    if '-' in cell_value:
        max_salary = split(cell_value, '-')[1]
    else:
        max_salary = cell_value
return max_salary

df['max_salary'] = minus_hr.apply(lambda x: max_salary(x))


def avg_salary(cell_value):
    if '-' in cell_value:
        salaries = split(cell_value,'-')
        avg = sum(salaries)/len(salaries)
    else:
        avg = cell_value
return avg

df['avg_salary'] = minus_hr.apply(lambda x: avg_salary(x))

交换 min_salary 并重复

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我不知道为什么我在这段代码中出现错误。错误:列表索引超出范围

列表索引超出范围,我不知道为什么

我正在使数组超出范围异常,但我不知道为什么会发生错误

数组下标超出范围错误-不知道为什么?

我不断下标超出范围,不知道如何解决

我的Paint方法运行两次,我不知道为什么。我该如何解决这个问题,有人知道为什么会这样吗?

不知道为什么我在 java 中得到这个数组索引越界错误

字符串索引超出范围:2不知道为什么会出现这种情况

我的脚本出现语法错误,但我不知道为什么以及如何解决它>

我的页码显示有错误,我知道为什么以及在哪里但我不知道如何解决它们 (PyQt)

我不知道为什么在此python函数中出现索引错误?

我不知道如何解决 OpenCV Python 问题

我的python循环失控了。不知道如何解决这个问题

Octave 索引越界错误。不知道为什么

我该如何解决这个错误,它说列表索引超出范围?

我不知道为什么这个for循环程序不起作用(python)。解决方案?

我收到这个 Intent 的错误,我不知道为什么

我不知道为什么我得到这个文件,但是仍然显示错误

我不知道为什么我在 jsp 文件中收到这个简单代码的错误

如何解决:我的第二个 if 语句出现语法错误,但我不知道为什么?

这个 for circle 无法删除列表中的每个相同元素,我不知道为什么

我不知道为什么这个错误会出现在 Laravel 中?

SMTP 错误,我不知道为什么

Dockerfile 错误的目录。我不知道为什么

不知道为什么我收到 StopIteration 错误

如何解决列表索引超出范围的错误Python?

不知道为什么我的python输出循环

除以零例外,知道为什么会抛出,不知道如何解决

我不知道如何解决这个问题(discord.py)