对数据框中的数据进行分类
Categorizing data in dataframe
我有一个名为 AH 的数据框,包含 F1 和 F2 列:
F1 F2
aq ab
ac my
(以此类推)
我想再做一个专栏,先对每一栏进行分类,这样它就变成了:
F1 Category1 F2 Category2
aq 77 ab 11
ac 77 my 55
数据已经预处理好了,我做了这个代码:
for len in range (AH):
if AH ['F1'] =={'aq','ac'}:
AH.loc[index, 'Category1'] = '77'
elif AH ['F2'] =={'ab'}:
AH.loc[index, 'Category1'] = '11'
elif AH ['F2'] =={'my'}:
AH.loc[index, 'Category1'] = '55'
else:
'NaN'
但是,错误显示:
TypeError: 'DataFrame' object cannot be interpreted as an integer
谁能回答一下?
您可以创建一个函数,您可以为列(F1 和 F2)的每个值调用该函数
如下:
def fun(x):
if x is None:
return ""
if x in ['aq','ac']:
return "77"
if x in ['ab']:
return "11"
if x in ['my']:
return "55"
#calling fun() for each value of F1 column and F2 column
AH['Category1']=[fun(x) for x in AH.F1.values]
AH['Category2']=[fun(x) for x in AH.F2.values]
我有一个名为 AH 的数据框,包含 F1 和 F2 列:
F1 F2
aq ab
ac my
(以此类推)
我想再做一个专栏,先对每一栏进行分类,这样它就变成了:
F1 Category1 F2 Category2
aq 77 ab 11
ac 77 my 55
数据已经预处理好了,我做了这个代码:
for len in range (AH):
if AH ['F1'] =={'aq','ac'}:
AH.loc[index, 'Category1'] = '77'
elif AH ['F2'] =={'ab'}:
AH.loc[index, 'Category1'] = '11'
elif AH ['F2'] =={'my'}:
AH.loc[index, 'Category1'] = '55'
else:
'NaN'
但是,错误显示:
TypeError: 'DataFrame' object cannot be interpreted as an integer
谁能回答一下?
您可以创建一个函数,您可以为列(F1 和 F2)的每个值调用该函数 如下:
def fun(x):
if x is None:
return ""
if x in ['aq','ac']:
return "77"
if x in ['ab']:
return "11"
if x in ['my']:
return "55"
#calling fun() for each value of F1 column and F2 column
AH['Category1']=[fun(x) for x in AH.F1.values]
AH['Category2']=[fun(x) for x in AH.F2.values]