2016-11-01 2 views
2

У меня есть dataframe, как показано ниже, с 3 столбцами и 12 строками. 12 строк - это 4 повторяющихся класса (три раза). Я знаю, что у меня никогда не было значений для 1A, 1D, 2B и 2D ячеек, и что у меня всегда есть значения ячейки для 1B, 1C, 2A и 2C ячеек.pandas: первые шаги с объединением, объединением и объединением

enter image description here

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

enter image description here

Я попытался прочитать руководство http://pandas.pydata.org/pandas-docs/stable/merging.html, но у меня есть некоторые трудно принять правильный путь. Некоторые советы для меня?

Большое спасибо

ответ

2

Вы можете использовать:

#get index to MultiIndex in column 
df = df.set_index(['class','date']).unstack(level=0) 
#remove columns with all NaN, sort index 
df = df.dropna(axis=1, how='all').sort_index(ascending=False) 
#reset MultiIndex in columns, cast int to str in first level (1,2 values) 
df.columns = [''.join((str(col[0]),col[1])) for col in df.columns] 
#index to column 
df.reset_index(inplace=True) 
#reorder columns 
df = df[df.columns[1:].union(df.columns[:1])] 
print (df) 
     1B  1C  2A   2C  date 
0 1.462543 4.920529 4.496126 3.362060e+08 2016-10-31 
1 3.931170 3.439862 2.453640 1.488948e+00 2016-10-30 
2 3.550311 3.504713 3.224958 1.804881e+00 2016-10-29 
+0

Прежде всего большое спасибо, вы очень любезны. У меня есть эта ошибка: '' ' TypeError Traceback (самый последний вызов последним) в () 8 # печать седловины ---> 10 df.columns = [ '' .join (цв) окра в df.columns] 11 ''» 12 #index в колонке TypeError: последовательность пункт 1: ожидается строка, Int найден ' '' – aborruso

+0

Вы должны отбрасывать 'INT 'to' str' - использовать 'df.columns = ['' .join ((str (col [0]), col [1])) для col в df.columns]' – jezrael

+0

Еще раз спасибо, но, похоже, Работа. У меня 3 строки х 25 столбцов, а не 3 строки по 5 столбцов. Я вставил все в этот gist https://gist.github.com/aborruso/8eb51579335cd94d44c033bea2b27748 – aborruso

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