如何使用Python查询小数据集
我需要使用Python从csv文件中识别数据子集的帮助。我有一个包含水果清单的数据集,还有一个类型字段,如下所示如何使用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
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…”。通常情况下,在数据帧的行上进行迭代是个坏主意,事实上,这应该是绝对的最后手段