2015-05-28 4 views
2

В настоящее время у меня есть dataframe, который я выскочил из Интернета с помощью Beautiful Soup. Однако он настроен так, что он привязан к сетке, а не сплошному списку. Как и в месяцах для строк и Years for Columns.Добавление столбца в конец столбца в пределах того же DataFrame

Однако я стараюсь сделать так, чтобы это была сплошная колонка, так как эти данные будут отображаться в отношении других данных, также как и рождений против смертей.

Пример ФР я в настоящее время, как показано ниже,

 2010  2011  2013  2014 
Jan 1.474071 -0.064034 0.781836 -1.282782 
Feb -1.071357 0.441153 0.583787 2.353925 
Mar 0.221471 -0.744471 1.729689 0.758527 
Apr -0.964980 -0.845696 1.846883 -1.340896 
May -1.328865 1.682706 0.888782 -1.717693 
Jun 0.228440 0.901805 0.520260 1.171216 
Jul -1.197071 -1.066969 -0.858447 -0.303421 
Aug 0.306996 -0.028665 1.574159 0.384316 
Sep -0.014805 -0.284319 -1.461665 0.650776 
Oct 1.588931 0.476720 -0.242861 0.473424 
Nov -0.014805 -0.284319 -1.461665 0.650776 
Dec 0.964980 -0.845696 1.846883 -1.340896 

Однако, когда я пытаюсь добавить (с игнорировать индекс) Я получаю

df[["2010"]].append(df[["2011"]], ignore_index=True) 

    00 1.474071 NaN 
    01 -1.071357 NaN 
    02 0.221471 NaN 
    03 -0.964980 NaN 
    04 -1.328865 NaN 
    05 0.228440 NaN 
    06 -1.197071 NaN 
    07 0.306996 NaN 
    08 -0.014805 NaN 
    09 1.588931 NaN 
    11 -0.014805 NaN 
    12 NaN   -0.064034 
    13 NaN   0.441153 
    14 NaN   -0.744471 
    15 NaN   -0.845696 
    16 NaN   1.682706 

Однако я пытаюсь получить всю набор данных в один непрерывный столбец, например

00 1.474071 
    01 -1.071357  
    02 0.221471  
    03 -0.964980 
    04 -1.328865  
    05 0.228440  
    06 -1.197071 
    07 0.306996 
    08 -0.014805 
    09 1.588931 
    11 -0.014805 
    12 -0.064034 
    13 0.441153 
    14 -0.744471 
    15 -0.845696 
    16 1.682706 

Как получить все четыре столбца в один столбец?

+0

В отличие от сайтов форума, мы не используем «Спасибо» или «Любая помощь приветствуется», или подписи на [так]. См. «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be - спасибо за сообщение). Кстати, это «Спасибо заранее», а не «Спасибо в продвинутом». –

ответ

1

Вы можете создать список перевалы, и вызвать squeeze в anonymise данные, так что не пытается выровнять по столбцам, а затем вызвать concat в этом списке, проходя ignore_index=True создает новый индекс, в противном случае вы будете получить название месяцев в качестве значений индекса неоднократного:

In [228]: 

cols = [df[col].squeeze() for col in df] 
pd.concat(cols, ignore_index=True) 
Out[228]: 
0  1.474071 
1 -1.071357 
2  0.221471 
3 -0.964980 
4 -1.328865 
5  0.228440 
6 -1.197071 
7  0.306996 
8 -0.014805 
9  1.588931 
10 -0.014805 
11 0.964980 
12 -0.064034 
13 0.441153 
14 -0.744471 
15 -0.845696 
16 1.682706 
17 0.901805 
18 -1.066969 
19 -0.028665 
20 -0.284319 
21 0.476720 
22 -0.284319 
23 -0.845696 
24 0.781836 
25 0.583787 
26 1.729689 
27 1.846883 
28 0.888782 
29 0.520260 
30 -0.858447 
31 1.574159 
32 -1.461665 
33 -0.242861 
34 -1.461665 
35 1.846883 
36 -1.282782 
37 2.353925 
38 0.758527 
39 -1.340896 
40 -1.717693 
41 1.171216 
42 -0.303421 
43 0.384316 
44 0.650776 
45 0.473424 
46 0.650776 
47 -1.340896 
dtype: float64 
+0

Это отлично работает для меня, можете ли вы отредактировать свой вопрос с помощью вашего ошибочного кода и ошибки, спасибо. Также какая версия pandas вы используете? – EdChum

+0

Извините, мне пришлось установить set_index, его работа отлично. Спасибо! – sdhaus

3

Другим способом сделать это состоит в unstackDataFrame. Затем сбросьте индекс для целого индекса по умолчанию с reset_index(drop=True):

df.unstack().reset_index(drop=True) 
+1

Мне нравится этот ответ b/c, тогда вы не теряете информации re: когда что-то случилось. –

Смежные вопросы