我最初有一个数据帧
datax = {'col1' : [['apple','pear','peach'],['kiwi','pear','apple','watermelon']]}
db = pd.DataFrame(columns = ['col1'], data = datax))
列“col1”的每一行都是字符串列表,字符串的每个元素都应该是一个类别。 我要做的是创建一个category对象,其中包含来自不同行的所有类别,然后我想对每一行应用分类转换。 我成功地创建了一个字典,其中包含了不同行中的所有单词:
categ = []
for lst in db['col1']:
for term in lst:
if term not in categ:
categ.append(term)
categ = pd.Series(categ, dtype = 'category')
但我认为这不是一个达到目标的好方法。 此外,我不知道如何用键重新计算行中的字符串(这也是我字典中的值)
有没有更好的方法来提取和映射类别
基本上,我需要做的是:
>>db['col1']
[['apple','pear','peach'],
['kiwi','pear','apple','watermelon']]
我想说的是:
>>db['col1']
[[0,1,2],
[3,1,0,4]]
请注意,我正在尝试使用字典,因为我希望能够反转操作并重新创建原始列。 我有两行多,所以我不能列举所有可能的情况
好的,所以你可以使用,解释被添加为注释:
输出
相关问题 更多 >
编程相关推荐