我需要使用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的新手,因此需要有关实际逻辑的帮助
答案 0 :(得分:0)
我假设预期答案的倒数第二行应保持为“ 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
由于这里没有特殊的熊猫操作,因此使用熊猫不是必需的(尽管它可能对其他操作很有用)。关键是定义一个唯一的元组列表,该列表记录Item和Type的每种组合,并使用index函数再次找到它。
答案 1 :(得分:-1)
我不太了解你的问题。
如果要读取csv文件,可以使用pandas
。
import pandas as pd
pd.read_csv('myfile.csv')
您也可以使用sep
参数来使用自定义分隔符。