【发布时间】:2018-05-01 08:07:46
【问题描述】:
在 pandas df 中,我有一个列 ['name'],其中包含各种操作系统分类,例如 'Windows 7', 'Windows 10', 'Linux', 'Mobile iOS 9.1', 'OS X 10.12' 等。这是字符串。
我希望使用这个函数来创建一个新的列['type'],这将是一个更通用的版本:
def name_group(row):
if 'Windows' in row:
name = 'Microsoft Windows'
elif 'iOS' in row:
name = 'Apple iOS'
elif 'OS X' in row:
name ='Apple Macintosh'
elif 'Macintosh' in row:
name = 'Apple Macintosh'
elif 'Linux' in row:
name = 'GNU/Linux'
else:
name = 'Other'
return name
当我通过传入单个字符串变量来测试函数时,它可以正常工作,但是由于某种原因,当我像这样将函数应用于 df 时,它只为每一行返回“其他”。
new_df['type'] = new_df.apply(name_group, axis=1)
对可能导致这种情况的任何想法?
【问题讨论】: