如何在使用多个列和列名称的熊猫中编写Lambda表达式?

时间:2018-12-09 16:22:36

标签: python pandas lambda

我想使用pandas lambda表达式实现以下目标

  1. 在名称为“ ideal_prime_fc”列的列中找到值
  2. 在名称为“ prime_fc”列的列中找到值
  3. 找到差异并放入新列“ delta”

dataframe

1 个答案:

答案 0 :(得分:1)

您会喜欢以下内容吗?

编写一个函数以减去两个素数列中的值:

var quart = [
  ["48.85585695936588,2.317734961729684"],
  ["48.87234429654349,2.351466422300973"],
  ["48.85376742273335,2.3639977028185513"]
];

var points = [];
quart.forEach(function(item) {
  var coords = item[0].split(',');
  points.push({
    lat: parseFloat(coords[0]), // added float parsing in Edit
    lng: parseFloat(coords[1])
  });
})
console.log(points);

应用功能,将其分配给新列:

def get_col_name(x):
    try:
        ip_fc = x['ideal_prime_fc']
        p_fc = x['prime_fc']
        return x[ip_fc]-x[p_fc]
    except IndexError:
        return float('NaN')  # handle non-existent values however you'd prefer

截断的示例输出:

df['diff'] = df.apply(lambda x: get_col_name(x), axis=1)