Обновление в конце
Обновление 2 в конце
Я прочитал отсюда:
получить список из столбца данных pandas
Столбцы Pandas DataFrame относятся к серии Pandas, когда вы их извлекаете
Однако в моем случае это не так:
Первая часть (создание DataFrame для чтения json scraped)
Поскольку он содержит бизнес-информацию, я не могу показать полный код, но в основном он читает одну строку данных (хранится в серии) и добавляет в конце DataFrame.
dfToWrite = pandas.DataFrame(columns=[lsHeader]) # Empty with column headers
for row in jsAdtoolJSON['rows']:
lsRow = []
for col in row['row']:
lsRow.append((col['primary'])['value'])
dfRow = pandas.Series(lsRow, index = dfToWrite.columns)
dfToWrite = dfToWrite.append(dfRow, ignore_index = True)
Следующая часть (тип проверки): (Пожалуйста, игнорируйте функциональность функции)
def CalcMA(df: pandas.DataFrame, target: str, period: int, maname: str):
print(type(df[target]))
Наконец, вызовите функцию: ("Raw_Impressions" - заголовок столбца)
CalcMA(dfToWrite, "Raw_Impressions", 5, "ImpMA5")
Консоль Python показывает:
класс 'pandas.core.frame.DataFrame'
Дополнительный вопрос : Как получить список из столбца Dataframe, если это не серия (в этом случае я могу использовать tolist()
)?
Обновление 1
Отсюда:
Bokeh: AttributeError: объект 'DataFrame' не имеет атрибута 'tolist'
Я понял, что мне нужно использовать .value.tolist()
, однако это все еще не объясняет, почему я получаю другой Dataframe, а не Series, когда я вытаскиваю столбец.
Обновление 2
Обнаружил, что у df есть MultiIndex, очень удивился:
MultiIndex (уровни = [['COST _ / CPM', 'CTR', 'ECPM / _ ROI', 'Goal_Ratio', 'Hour_of_the_Day', 'IMP./Joins', 'Raw_Clicks _ / _ Unique_Clicks ',' Raw_Impressions ',' Unique_Goal _ / _ UniqueGoal_Forecasted_Value ']],
метки = [[4, 7, 5, 6, 1, 8, 3, 0, 2]])
Я не вижу labels
при распечатке df / записи в .csv, это просто обычный DataFrame. Не уверен, где я взял этикетки.