我是熊猫的新手,正在尝试根据现有列中的值创建一个新列。我的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)