Проблемы с повторением кадра данных в пандах - PullRequest
0 голосов
/ 17 октября 2019

Я заполняю фрейм данных, используя содержимое списка списков, например:

desc_prep=[['aesthet', 'abod'], [['arb', 'abod'], ['forest', 'abod']]]

col_names =  ['desc_name','desc_avg_vector']
df_desc_prep = pd.DataFrame(columns=col_names)    
df_desc_prep['desc_name']=desc_prep

В этот момент я получаю следующее:

                         desc_name
0                [aesthet, abod]
1  [[arb, abod], [forest, abod]]

Когдаитерирование информационного кадра с метерическими элементами для получения кортежа с именем столбца и содержимым в виде серии:

for index, value in df_desc_prep.iteritems():
    print("index: ", index)#-->index:  desc_name
    print("value: ", value)#-->value:  0                  [aesthet, abod]
    print("value[0]:", value[0])#['aesthet', 'abod']
    print("value[1]:", value[1])#[['arb', 'abod'], ['forest', 'abod']]
    if isinstance(value[0], list):#->value[0]:  ['aesthet', 'abod']

При итерации с помощью iterrows () для получения серии для каждой строки:

for index, value in df_desc_prep.iterrows():
    print("index: ", index)#-->index:  0
    print("value: ", value)#-->value:  desc_name    [aesthet, abod]
    if isinstance(value[0], list):#-->value[0]:  ['aesthet', 'abod'], value[1]: IndexError: index out of bounds

Я ожидал получить значение [0] как aesthet и значение [1] как abod. Вместо этого я получаю IndexError: index out of bounds при получении значения [1].

Как получить поведение итерации по фрейму данных и получить value[0]=aesthet при итерации по ['aesthet', 'abod'] и value[0]=['arb', 'abod'] при итерации по [['arb', 'abod'], ['forest', 'abod']]

1 Ответ

1 голос
/ 17 октября 2019
...
for index, value in df_desc_prep.iterrows():
    print(value[0][0])
    print(value[0][1])

aesthet
abod
['arb', 'abod']
['forest', 'abod']

for index, value in df_desc_prep.iterrows():
    print(value['desc_name'][0])
    print(value['desc_name'][1])

aesthet
abod
['arb', 'abod']
['forest', 'abod']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...