#python #pandas
#python #pandas
Вопрос:
Я пытаюсь извлечь строки из этих CSV, где состояние «Пенсильвания»: https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_daily_reports_us
У меня есть этот код:
import glob
import pandas as pd
df = []
path = "/home/reallymemorable/Documents/git/COVID-19/csse_covid_19_data/csse_covid_19_daily_reports_us/*.csv"
for fname in glob.glob(path):
row = df.loc[df['Province_State'] == 'Pennsylvania']
print(row)
Я получаю эту ошибку:
AttributeError: 'list' object has no attribute 'loc'
Я понимаю, что он ожидает фрейм данных, но я установил df
его в виде списка. Но я не знаю, как сделать его фреймом данных, чтобы мое сопоставление с образцом работало правильно.
Что я делаю не так?
Ответ №1:
В вашем коде df
есть пустой список []
, который вы определяете в начале, а не фрейм данных Pandas. Вы забыли загрузить данные:
path = "/home/reallymemorable/Documents/git/COVID-19/csse_covid_19_data/csse_covid_19_daily_reports_us/*.csv"
for fname in glob.glob(path):
df = pd.read_csv(fname) # this line???
row = df.loc[df['Province_State'] == 'Pennsylvania']
print(row)
Комментарии:
1. … Очевидно ли, что я давно не использовал Python?