首页 > 解决方案 > 如何使用 Python 查询小型数据集

问题描述

我需要使用 Python 从 csv 文件中识别数据子集的帮助。我有一个数据集,其中包含水果清单以及如下所示的类型字段。

Item    Type   
Apple   10         
Orange  5          
Pear    8          
Apple   10  
Pear    5
Orange  2
Pear    5

我需要能够将此数据集识别/拆分为水果和类型的子集。

预期输出是另一个带有数字的字段,表示它应该进入的类别:

 Item    Type   Category
 Apple   10     1
 Orange  5      2   
 Pear    8      3   
 Apple   10     1
 Pear    5      4
 Orange  5      2
 Pear    5      4

我是 Python 新手,因此需要有关实际逻辑的帮助

标签: pythondataset

解决方案


我假设预期答案的倒数第二行应保留为“Orange 2”,并键入:

import pandas
df = pandas.DataFrame([['Apple', '10'], 
                       ['Orange', '5'], 
                       ['Pear', '8'], 
                       ['Apple', '10'], 
                       ['Pear', '5'], 
                       ['Orange', '2'], 
                       ['Pear', '5']], 
                      columns = ['Item', 'Type'])

categories = []
for index,row in df.iterrows():
    if tuple(row) not in categories:
        categories.append(tuple(row))
df["Category"] = [categories.index(tuple(row))+1 for index,row in df.iterrows()]
print(df)

这会给

     Item Type  Category
0   Apple   10         1
1  Orange    5         2
2    Pear    8         3
3   Apple   10         1
4    Pear    5         4
5  Orange    2         5
6    Pear    5         4

由于这里没有特殊的 pandas 操作,因此没有必要使用 pandas(尽管它可能对其他操作有用)。关键是定义一个唯一的元组列表,记录Item和Type的每个组合,并使用索引函数再次找到它。


推荐阅读