#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 не могли бы вы опубликовать свой ввод, вывод и ожидаемый результат в виде текста, пожалуйста?