pandas替换列子集的空值

时间:2016-05-12 15:53:31

标签: python pandas

我有一个包含许多列的数据框,例如:

df:
name   salary  age   title
John      100   35    eng
Bill      200  NaN    adm
Lena      NaN   28    NaN
Jane      120   45    eng

我想替换薪水和年龄中的空值,但是在其他列中没有。我知道我可以这样做:

u = df[['salary', 'age']]
df[['salary', 'age']] = u.fillna(-1)

但这似乎很简洁,因为它涉及复制。有没有更有效的方法来做到这一点?

5 个答案:

答案 0 :(得分:7)

试试这个:

doc.Find("td").EachWithBreak(func(i int, s *goquery.Selection) bool {
    summary := s.Text()
    if summary == "--" {
        return false
    }
    return true
})

答案 1 :(得分:2)

它不是那么美丽,但它有效:

  document.addEventListener('DOMContentLoaded', function() {
     var element = document.getElementById("sidebar-wrapper");
     element.parentNode.removeChild(element);
  });

答案 2 :(得分:2)

According to Pandas documentation in 23.3

values = {'salary': -1, 'age': -1}
df = df.fillna(value=values)

答案 3 :(得分:1)

你可以这样做:

df = df.assign(
    salary=df.salary.fillna(-1),
    age=df.age.fillna(-1),
)

如果你想将它与其他操作链接起来。

答案 4 :(得分:0)

我希望 fillna() 有像 drop() 这样的子集参数,也许应该向 Pandas 发送请求,但我认为这是最干净的版本。

df[["salary", "age"]] = df[["salary", "age"]].fillna(-1)