Как запросить небольшой набор данных с помощью Python - PullRequest
0 голосов
/ 27 марта 2019

Мне нужна помощь с определением подмножеств данных из файла CSV с использованием Python. У меня есть набор данных, содержащий инвентарь фруктов и поле Тип, как показано ниже.

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, поэтому мне нужна помощь с реальной логикой

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Я предполагаю, что вторая последняя строка ожидаемого ответа должна остаться как "Оранжевый 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, чтобы найти ее снова.

0 голосов
/ 27 марта 2019

Я не очень понимаю ваш вопрос.

Если вы хотите прочитать CSV-файл, вы можете использовать pandas.

import pandas as pd

pd.read_csv('myfile.csv')

Вы также можете использовать параметр sep для использования пользовательского разделителя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...