检查数据框列的列表成员资格并附加结果?

普乐

使用 Pandas DataFrame、df 和函数,如下所示

def code(x):
    for item in x:
        if x in [21,32]:
            return'Cat A'
        elif x in [22,34]:
            return"Cat B"
        else:
            print ('sorry')

我有一个 DataFrame,df,它有一列('Ref')包含数字

df = 

**Document No**     **Date**.     **Ref**
2018-0212        2019-03-28       71
2018-0212R1      2019-03-28       71
2019-0004        2019-01-11       34
2019-0005        2019-01-14       25

我希望使用上面的函数迭代该列“Ref”,并在附加到 df 的新列中返回结果(即包含“CAT A”、“CAT B”或“抱歉”的列)

我努力了

df.apply.code(df['Ref'])

没有成功。有什么想法吗?谢谢

雨果蒙

使用 .loc 条件

这个解决方案非常简单,每一行都将根据.loc(). 最后一行用于.fillna()分配默认值。

df.loc[df['your_column'].isin([21,32]), 'Category'] = 'CAT A'
df.loc[df['your_column'].isin([22,34]), 'Category'] = 'CAT B'
df['Category'] = df.Category.fillna('Sorry') 

使用 np.select

这是@ALollz 建议的答案中描述的方法这可能是最好的处理方式,但对于简单的情况来说有点麻烦。

首先,您需要列出您的条件和选择,然后,np.select您可以根据给定的条件为“类别”值赋予属性。default参数将用于填充所有条件都失败的地方。

conditions = [df['your_column'].isin([21,32]), df['your_column'].isin([22,34])]
choices = ['CAT A', 'CAT B']
df['Category'] = np.select(conditions, choices, default="Sorry")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

字符串与列表成员资格检查

检查二维列表中列表的成员资格

检查数据框列中的值是否存在于列表中,并根据检查结果创建新列

检查数据框熊猫中的列列表

Deequ 检查的结果数据框的列表示什么?

检查数据框列表

熊猫数据框架列中的成员资格测试

如何在列表中附加数据框列?

Python:如何根据布尔变量反转列表成员资格检查?

如何在嵌套的for循环中检查字典和列表中项目的成员资格?

检查列表中的拆分文本成员身份后,如何从数据框中删除行?

检查多列数据格式并将结果附加到Pandas中的一列

字典成员资格检查的意外行为

如何在JavaScript中检查用户的asp成员资格数据库角色?

根据集合中的成员资格替换熊猫数据框中的值

熊猫:检查另一列的成员资格时创建NaN?

列表中的成员资格的领域谓词

测试Enum列表中的成员资格失败

获取计算机列表的成员资格

将数据框附加到列表

将列表附加到数据框

将数据框附加到列表的开头

将列表附加到数据框

如何在同一数据框中将列求和并将结果附加为行?

R 将函数应用于数据框中的组,将结果添加为附加列

拆分一个pandas列,并将新结果附加到数据框

用于附加列表或数据框的 Pandas 数据框

错误 1265 (01000):第 2 行“成员资格”列的数据被截断

是否可以将不同长度的列表附加为空数据框中的列?