python - 对数据框中的数据进行分类
问题描述
我有一个名为 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]
推荐阅读
- python - __getitem__ 如何用于对象迭代?
- java - 使用不同的视图时,Recyclerview 不流畅
- java - if(usersData.getNumber().equals(number)){ NullPointerException
- php - 如何在 PHP 中测试负零?
- javascript - JavaScript - 这两个函数之间的区别
- arrays - 如何对该数组进行分组并按字母顺序制作字典索引列表
- mysql - 如何在联合查询中查询记录数?
- swift - 动态调整自定义 xib 单元格的大小
- javascript - 如何以开玩笑的方式模拟带有回调的反应导航导航功能
- c++ - 如果我公开 const 和非 const API,我是否会破坏 const 正确性?