2016-10-12 2 views
3

Я пытаюсь добавить пустую строку в конец фрейма данных, но не могу этого сделать, даже пытаясь понять, как панды работают с функцией добавления и все еще не получают ее.Добавить пустую строку в dataframe с помощью pandas

Вот код:

import pandas as pd 

excel_names = ["ARMANI+EMPORIO+AR0143-book.xlsx"] 
excels = [pd.ExcelFile(name) for name in excel_names] 
frames = [x.parse(x.sheet_names[0], header=None,index_col=None).dropna(how='all') for x in excels] 
for f in frames: 
    f.append(0, float('NaN')) 
    f.append(2, float('NaN')) 

Есть два столбца и случайное число ряда.

с «печать ф» в течение цикла я получаю это:

       0     1 
0     Brand Name Emporio Armani 
2     Model number   AR0143 
4     Part Number   AR0143 
6     Item Shape  Rectangular 
8 Dial Window Material Type   Mineral 
10    Display Type   Analogue 
12     Clasp Type   Buckle 
14    Case Material Stainless steel 
16    Case Diameter 31 millimetres 
18    Band Material   Leather 
20     Band Length Women's Standard 
22     Band Colour    Black 
24     Dial Colour    Black 
26   Special Features  second-hand 
28     Movement   Quartz 
+0

Не могли бы вы немного объяснить код? Его трудно оценить, что вы пытаетесь добавить - строка, столбец или данные? – user3667569

+0

@ user3667569 У меня есть данные в xlsx в нескольких строках и 2 столбцах, и мне нужно добавить пустую строку в конец. Цикл for был всего лишь тем, что я пытался без везения. –

ответ

4

Вы можете добавить его путем добавления серии к dataframe следующим образом. Я предполагаю пустым, что вы хотите добавить строку, содержащую только «Нан». Вы можете сначала создать объект Series с Nan. Убедитесь, что вы указываете столбцы при определении объекта «Серии» в параметре -Index. Вы можете добавить его в DF. Надеюсь, поможет!

from numpy import nan as Nan 
import pandas as pd 

>>> df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 
...      'B': ['B0', 'B1', 'B2', 'B3'], 
...      'C': ['C0', 'C1', 'C2', 'C3'], 
...      'D': ['D0', 'D1', 'D2', 'D3']}, 
...      index=[0, 1, 2, 3]) 

>>> s2 = pd.Series([Nan,Nan,Nan,Nan], index=['A', 'B', 'C', 'D']) 
>>> result = df1.append(s2) 
>>> result 
    A B C D 
0 A0 B0 C0 D0 
1 A1 B1 C1 D1 
2 A2 B2 C2 D2 
3 A3 B3 C3 D3 
4 NaN NaN NaN NaN 
+0

Я не понимаю, что мне нужно сделать, чтобы добавить строку «nan». –

+0

Как добавить текущие данные xlsx в DataFrame? –

+0

Просто загрузите текущие данные в фрейм данных. Затем замените индексный параметр в этой строке в соответствии с вашими потребностями: s2 = pd.Series ([Nan, Nan, Nan, Nan], index = ['A', 'B', 'C', 'D']). – user3667569

-1

Правильная функция является:

pd.append(..., axis = 0) # axis = 0 for rows 
0

Код ниже работал для меня.

df.append(pd.Series([np.nan]), ignore_index = True) 
Смежные вопросы