pandas:减去两列并将结果保存为绝对值

时间:2018-02-19 13:55:14

标签: python pandas numpy

我有代码,我在pandas中打开了一个csv文件,我正在创建一个新的。有一行我需要创建一个“减去两行的绝对值”的“最后两行注释掉”。我在脑海里尝试了很多想法都会带来错误。

import pandas as pd
import numpy as np

df = pd.read_csv(filename_read)
ids = df['id']

oosDF = pd.DataFrame()
oosDF['id'] = ids
oosDF['pred'] = pred
oosDF['y'] = df['target']
#oosDF['diff'] = oosdF['pred'] - oosDF['y']
#oosDF['diff'] = oosDF.abs()

2 个答案:

答案 0 :(得分:2)

我认为您需要新的DataFrame子集(双[]中的列名称),然后得到abs列的差值:

oosDF = df[['id','pred', 'target']].replace(columns={'target':'y'})
oosDF['diff'] = (oosDF['pred'] - oosDF['y']).abs()

答案 1 :(得分:1)

在您的第一个注释行中,您有oosdF而不是oosDF

在您的第二个注释行中,您将列设置为abs()应用于整个数据框。那应该是oosDF['diff'].abs()

希望这有帮助!