Есть ли в списках Python столбцы? - PullRequest
0 голосов
/ 11 марта 2019

Я учусь создавать словари на python.

Посмотрите конкретно на этот код:

для строки в apps_data [1:]: c_rating = строка [10]

opened_file = open('AppleStore.csv')
from csv import reader
read_file = reader(opened_file)
apps_data = list(read_file)
content_ratings = {'4+': 0, '9+': 0, '12+': 0, '17+': 0}

for row in apps_data[1:]:
    c_rating = row[10]
    if c_rating in content_ratings:
        content_ratings[c_rating] += 1

print(content_ratings)

Почему можноЯ не использую для c_rating в apps_data [1:, 10]: вместо?

opened_file = open('AppleStore.csv')
from csv import reader
read_file = reader(opened_file)
apps_data = list(read_file)
content_ratings = {'4+': 0, '9+': 0, '12+': 0, '17+': 0}

for c_rating in apps_data[1:,10]:
    if c_rating in content_ratings:
        content_ratings[c_rating] += 1

print(content_ratings)

1 Ответ

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

Python не поддерживает такую ​​индексацию.

Я предлагаю вам попробовать панд.Примерно так:

import pandas as pd
df = pd.read_csv('tmp.csv')

for c_rating in df['rating']:
    if c_rating in content_ratings:
        content_ratings[c_rating] += 1

Pandas будет считывать ваш CSV-файл в Pandas DataFrame, который похож на двумерный массив на стероидах.

Первая строка автоматически будет использоваться в качестве столбцазаголовки.Таким образом, вам не нужно пропускать первую строку в вашем коде.

Кроме того, вместо того, чтобы сообщать, что ваш c_rating находится в 10-м столбце, вы можете ссылаться на столбец, используя заголовок столбца из первой строкиВаш CSV-файл.

...