Добавьте список в столбец фрейма данных pandas

#python #pandas

Вопрос:

Привет, ребята У меня есть этот код:

 check_df = pd.DataFrame()
check_df['item'] = ''
check_df['simillar_items'] = ''

for item in sorted(df_clean.ProductName.unique()):
    population = sorted(df_clean.ProductName.unique())
    check_df['item'] = [item]
    simillar = calculate_similarity(item,population,sensitivity = 85)
    check_df['simillar_items'] = simillar
 

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

 item   simillar_items    
item a [Item C, Item B, Item G]
 

Когда я выполняю цикл, как показано выше, я получаю следующую ошибку:

 Length of values (2) does not match length of index (1)
 

Есть идеи, почему?

Ответ №1:

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

 import pandas as pd

# Create an empty dictionary
data = {
    'item': [],
    'similar_items': []
}

# Add data to the dictionary
for item in sorted(df_clean.ProductName.unique()):
    population = sorted(df_clean.ProductName.unique())
    data['item'].append(item)
    simillar = calculate_similarity(item,population,sensitivity = 85)
    data['similar_items'].append(similar)

# Convert the dictionary into a DataFrame
df = pd.DataFrame(data)
 

Затем вы можете найти свои данные df во фрейме данных.