作者:王漻_957 | 来源:互联网 | 2023-02-01 14:54
我有一个包含以下字段的csv文件(delimiter =,)
filename labels
xyz.png cat
pqz.png dog
abc.png mouse
有一个包含所有类的列表
data-classes = ["cat", "dog", "mouse"]
问题:如何用标签数据类的索引替换csv中的字符串标签(即,如果label == cat
label应该更改为0)并将其保存在csv文件中。
1> EdChum - Rei..:
假设列表中存在所有类,则可以使用apply
并调用index
列表来返回该类在列表中的顺序位置:
In[5]:
df['labels'].apply(data_classes.index)
Out[5]:
0 0
1 1
2 2
Name: labels, dtype: int64
但是,定义映射的字典并通过map
IMO 传递给IMO会更快,因为这是赛顿化的,因此应该更快:
In[7]:
d = dict(zip(data_classes, range(0,3)))
d
Out[7]: {'cat': 0, 'dog': 1, 'mouse': 2}
In[8]:
df['labels'].map(d, na_action='ignore')
Out[8]:
0 0
1 1
2 2
Name: labels, dtype: int64
如果不存在类,则NaN
返回