Как сделать Multi Index и заполнить значения для списка в этом кадре данных? - PullRequest
0 голосов
/ 20 октября 2018

Я хотел бы узнать, как заполнять значения в этом типе списка.Здесь ситуация.У меня есть фрейм данных, как показано ниже.

prob_Data = {
'a': [1, 2, 3, 4, np.nan, 6]
, 'Unnamed: 2': [1, 2, 3, np.nan, 5, 6]
, 'b': [1, 2, np.nan, 4, 5, 6]
, 'Unnamed: 4': [1, np.nan, 3, np.nan, 5, 6]
, 'c': [np.nan, 2, 3, 4, np.nan, 6]
, 'Unnamed: 6': [1, 2, 3, np.nan, 5, 6]
, 'date': [np.nan, np.nan, '2008-04-07', '2008-04-14', '2008-04-21', '2008-04-28']
}

pd.DataFrame(prob_Data)

qqq = pd.DataFrame(prob_Data)
qqq.set_index('date', inplace=True)

И мне нужно сделать MultiIndex с,

new_colName = ['Active', 'Non-Active', 'Active', 'Non-Active', 'Active', 'Non-Active']
qqq.columns = [qqq.columns, aa]

, поэтому я делаю:

MultiIndex(levels = [['a', 'b', 'c'], ['Active', 'Non-Active']])

Мой ожидаемый результат:

['a', 'Unnamed: 2', 'b', 'Unnamed: 4', 'c', 'Unnamed: 6']
['a', 'a', 'b', 'b', 'c', 'c']

а как его получить?

Я пробовал это:

aa = qqq.columns.str[:1]
bb = []
for i in range(0, len(aa)):
    if bb != []:
        bb.clear 
    if i%2 == 0:
        print(aa[i])
    if i%2 != 0:
        print(aa[i])

Я застрял здесь, как составить список

['a', 'U', 'b', 'U', 'c', 'U']

до

['a', 'a', 'b', 'b', 'c', 'c']

это напоминает мне сдвиг, но сдвиг не поддерживает копирование, поэтому я думаю о,

fillna(method='ffill')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...