Новый файл Pandas отображает индексы в форме старых pandas

#python #pandas

#python #pandas

Вопрос:

Я создал новый файл pandas из старого файла pandas на основе некоторых условий. Проблема в том, что индексы в новом файле pandas не имеют размера от 0 до size, индексы просто взяты из старых pandas. Что я делаю не так?

введите описание изображения здесь

Это мой код:

 import pandas as pd
import numpy as np
from collections import Counter
import math

df_OnlineRetail = pd.read_csv("OnlineRetailNEW.csv")
#print(df_OnlineRetail.head())
df_size = df_OnlineRetail.shape[0]
#print("No of rows:", df_size)

def get_frequency():

    customer_list = df_OnlineRetail['CustomerID'].tolist()
    no_of_purchases = Counter(customer_list)

    customers = []
    purchases = []

    for key, value in no_of_purchases.items():

        customers.append(key)   
        purchases.append(value)

    frequency_dict = {'CustomerID':customers,
                      'Purchases':purchases}

    df_frequency = pd.DataFrame(frequency_dict)
    df_frequency = df_frequency.reset_index(drop=True)

    print(df_frequency.sort_values(by="Purchases", ascending = False))

Frequency = get_frequency()
  

Комментарии:

1.Вы не делаете ничего неправильного, вы сортируете фрейм данных, это не изменит индекс. Если вы хотите иметь отсортированную версию с индексом от 0 до …, тогда просто используйте df.reindex() pandas.pydata.org/pandas-docs/stable/reference/api /…

2. Каково содержимое файла? Разве вы не можете просто сделать pandas.read_csv() и выполнить подсчет частоты в pandas?

3. Мне это нужно таким образом

Ответ №1:

Ваш новый фрейм данных, похоже, отсортирован в порядке убывания на Purchases . Исходный фрейм данных, из которого он был изменен, по-видимому, не был. Следовательно, индексы (которые останутся такими же, как в исходном фрейме данных, если вы не переиндексируете df.reindex() ) теперь больше не расположены в порядке возрастания.

Комментарии:

1. Как я могу это исправить, чтобы мои индексы начинались с 1 и шли 2,3,4,5… Я пробовал с reindex() , но ничего не происходит.

2. @Aleksandar не могли бы вы опубликовать свой ввод, вывод и ожидаемый результат в виде текста, пожалуйста?