2

我对编程很陌生,到目前为止,我一直被它的强大功能迷住了。在这种情况下,我遇到了一个问题,其中有一个数据集,其中一个变量是商品名称:“apple”、“pear”、“cauliflower”、“clog”、“sneaker”等。我想要尝试将商品分组为更高阶的东西:“水果”、“蔬菜”、“鞋子”等。我做一些搜索的感觉是,这将是一个基于字典的分块问题,但我'不知道如何实现解决方案。我可以很容易地获得蔬菜、水果和鞋子类型的列表,但是是否有现有的包可以专门帮助解决这类问题?我最喜欢 Python 和R,

如果这个问题没有以足够具体的方式写出来,我们深表歉意。我是 stackoverflow 的新手,但我仍然掌握了窍门。

澄清:我正在尝试使用这些新的高阶标签创建一个新数据集。

4

1 回答 1

3

这是我的做法:

higher_order_conversion = {
    ('apple', 'pear', 'kiwi'): 'fruit',   #the keys must be tuples, not lists 
    ('X', 'Y', 'Z'): 'letter', # (because tuples are immutable and therefore hashable)
    ('loafers', 'sneakers', 'high heels'): 'shoes'
}

data_set = [[125, 'apple'], #these numbers are id numbers, or whatever extra information you might have packaged with your data
            [126, 'Y'],
            [127, 'loafers'],
            [103, 'kiwi']
            ]

print 'before', data_set

for data in data_set:
    for lower_order_list in higher_order_conversion.keys():
        if data[1] in lower_order_list:
            data[1] = higher_order_conversion[lower_order_list]

print 'after', data_set

输出:

before [[125, 'apple'], [126, 'Y'], [127, 'loafers'], [103, 'kiwi']]
after [[125, 'fruit'], [126, 'letter'], [127, 'shoes'], [103, 'fruit']]

希望这能给你一些想法。

于 2013-06-01T01:02:45.530 回答