Python: преобразование списка в столбец в фрейме данных - PullRequest
0 голосов
/ 30 апреля 2018

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

ID     Source
1      [apple,mango]
2      [grapes]

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

ID     Source
1      apple
1      mango
2      grapes

Я пытаюсь достичь вышеуказанного с помощью приведенного ниже кода:

duplicates = pd.DataFrame()
for _, row in file_df.iterrows(): # file_df is the original dataframe with list of values
        leng = len(row.Source_sentences)
            for j in row.Source_sentences:
                itr = [row.ID,j]
                df2 = pd.DataFrame(row.ID, j, columns=["ID","Source"])
                print(itr)
                duplicates.append(df2,ignore_index=True) 
                idx = idx +1 
    print(duplicates)

Я получаю сообщение об ошибке ниже

TypeError: Index(...) must be called with a collection of some kind, 'Apple.' wa
s passed

Может кто-нибудь указать мне, где я ошибаюсь с кодом

1 Ответ

0 голосов
/ 30 апреля 2018

Вы можете попробовать следующим образом:

Введите:

df = {'ID': [1, 2],'Source': [["apple","mango"], ["grapes"]]}
df = pd.DataFrame(data=df)
   ID          Source
0   1  [apple, mango]
1   2        [grapes]

df1 = (df['Source'].apply(lambda x: pd.Series(x))
        .stack()
        .reset_index(level=1, drop=True)
        .to_frame('Source')
        .join(df[['ID']], how='left')
)

Выход:

   Source  ID
0   apple   1
0   mango   1
1  grapes   2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...