如何使用Python查询小数据集

如何使用Python查询小数据集,python,dataset,Python,Dataset,我需要使用Python从csv文件中识别数据子集的帮助。我有一个包含水果清单的数据集,还有一个类型字段,如下所示 Item Type Apple 10 Orange 5 Pear 8 Apple 10 Pear 5 Orange 2 Pear 5 我需要能够识别/将此数据集拆分为水果和类型的子集 预期输出是另一个字段,该字段带有一个数字,用于指示其应进入的类别: Item Type

我需要使用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新手,所以需要实际逻辑方面的帮助

我不太理解你的问题

如果要读取csv文件,可以使用
pandas

import pandas as pd

pd.read_csv('myfile.csv')

您也可以使用
sep
参数来使用自定义分隔符。

我假设预期答案的最后一行应该保留为“橙色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

因为这里没有特殊的熊猫操作,所以使用熊猫并不是必要的(尽管它可能对其他操作有用)。关键是要定义一个唯一的元组列表,记录每个项目和类型的组合,并使用索引函数再次查找它。

我不理解这个问题,你能显示预期的输出吗?到目前为止你尝试了什么?如果你不理解这个问题,请不要发布答案我正试图帮助你,因为我理解它,等待作者的澄清。他澄清了,这不是他想要的答案在OP编辑预期输出之前发布的。现在不确定预期输出是否正确-橙色2已更改为橙色5。OP现在应该澄清了。谢谢!这个假设很好。但是如果我们不使用熊猫,解决方案会有所不同吗?不会,因为类别列中的项目列表是在没有熊猫帮助的情况下构建的。因此,您可以使用常用的open()函数读取文件并拆分行,然后使用“for line in line”而不是“for index,row in…”。通常情况下,在数据帧的行上进行迭代是个坏主意,事实上,这应该是绝对的最后手段