根据与现有列中的值相关的一系列条件为新列设置值

时间:2019-03-31 13:56:22

标签: python-3.x pandas dataframe

我是熊猫的新手,正在尝试根据现有列中的值创建一个新列。我的Col_1的值介于-0.2和0.3之间。我想将这些值重新编码为1-6。 我在函数中设置了一系列if语句来循环条件并返回新值。

当我尝试调用该函数以将其应用于新列'Col_2'时,出现以下错误:KeyError :('Col_1','发生在索引Col_1')。

我的脚本部分基于以下示例:pandas create new column based on values from other columns

我尝试使用df.mask,但是在我的条件下无法使其与AND语句一起使用。

import pandas as pd

fileIn = r'C:\Users\A\Desktop\Test.csv'

DF=pd.read_csv(fileIn,
  sep=',') 

DF['index_col'] = DF.index

def values(x):
    if x['Col_1'] <= -0.2:
        return 1
    if x['Col_1'] > -0.2 and x['Col_1'] <= -0.1:
        return 2
    if x['Col_1'] >-0.1 and x['Col_1'] <= 0:
        return 3
    if x['Col_1'] > 0 and x['Col_1'] <= 0.1:
        return 4
    if x['Col_1'] >0.1 and x['Col_1'] <= 0.2:
        return 5
    if x['Col_1'] > 0.2:
        return 6

DF['Col_2'] = DF.apply(lambda x: values(x), axis=0)

print(DF)

0 个答案:

没有答案