#python #pandas #jupyter-notebook
#python #pandas #jupyter-ноутбук
Вопрос:
Фрейм данных pandas состоит из 30 строк после чтения файла Excel. Он фильтрует до одной строки (это всегда будет одна строка после фильтра), как я могу сохранить фрейм данных в качестве фрейма данных. После фильтрации (удаления строк) он преобразует фрейм данных в серию.
Файл Excel ppfileloc содержит 30 строк за апрель месяц, и для выбранной даты это всегда будет одна запись во фрейме данных. Результирующий фрейм данных преобразуется в серию.
#Following is the code and output in jupyter.
df = pd.read_excel(ppfileloc)
df.set_index('Date',inplace=True)
date = 15
df1 = df.loc[date,:]
df2 = pd.DataFrame(df1)
df3 = df2.drop(labels=['Day', 'Sunrise', 'Sunset ', 'SidTime '])
df3.shape
# (8, 1)
#df3 command fetches the following as output
df3
# 15
# Sun 000:37:56
# Moon 119:42:25
# Mars 045:36:33
# Mercury 333:14:41
# Jupiter 240:11:57
# Venus 329:01:24
# Saturn 266:12:49
# Rahu 087:52:24
Как я могу преобразовать df3
в два столбца с планетами и градусами в качестве заголовков столбцов?
Ответ №1:
Если вы хотите преобразовать Series
в DataFrame
, вы можете просто сделать series.to_frame()
. Это принимает name
аргумент, указывающий, как назвать отдельный столбец фрейма данных. При этом индекс останется как индекс. Поскольку вместо этого вы хотите использовать его в виде столбца, вам также нужно сбросить индекс, а затем переименовать его по своему усмотрению.
df3.to_frame(name="degrees").reset_index().rename(columns={"index": "planet"})
Комментарии:
1. Спасибо @ Nathan, мне не обязательно использовать df3. Вместо этого я удалил метки в df1 и преобразовал в df2 в виде фрейма данных с именами столбцов и индексом. df2 выдает желаемый результат. импортируйте pandas как pd ppfileloc = (r»C:UsersAominedjangoprojectdjangoprojectFilestextppapr2019.xlsx «) df = pd.read_excel(ppfileloc) df.set_index(‘Date’,inplace= True) date = 15 df1 = df.loc[дата,:] df1 = df1.drop(метки =[‘День’, ‘Восход’, ‘Закат’, ‘Время ожидания’]) df2 = df1.to_frame(имя=»градусы»).reset_index().rename(столбцы ={«индекс»: «планета «})