Групер и ось должны быть одинаковой длины в Python

1

Я начинаю Python, и изучаю учебник, чтобы изучить модуль Pandas. У меня есть dataframe Berri_bike, и это из следующего кода:

  bike_df=pd.read_csv(os.path.join(path,'comptagevelo2012.csv'),parse_dates=['Date'],\
                          encoding='latin1',dayfirst=True,index_col='Date')



  Berri_bike=bike_df['Berri1'].copy() # get only the column='Berri1'

  Berri_bike['Weekday']=Berri_bike.index.weekday

  weekday_counts = Berri_bike.groupby('Weekday').aggregate(sum)
  weekday_counts

У меня есть 3 столбца в моем Berri_bilk, данные index- с 1/1/2012 по 12/31/2012, а также столбец значений с номерами для каждого из данных и назначенный ему столбец дня недели. Но когда я хочу группировать значения, я получил ошибку: ValueError: Grouper и axis должны быть одинаковой длины, я не уверен, что это означает, что я хочу сделать очень просто, как в SQL, sum (value) сгруппированный будний день... может кто-нибудь, пожалуйста, дайте мне знать, что здесь произошло?

Изображение 174551

Изображение 174551

Теги:
pandas
pandas-groupby

1 ответ

2
Лучший ответ

Вы копируете свою колонку в серию pandas вместо нового фрейма данных, поэтому следующие операции ведут себя по-разному. Вы можете увидеть это, если вы распечатаете Berri_bike потому что он не показывает имя столбца.
Вместо этого вы должны скопировать столбец в новый фреймворк данных:

import pandas as pd
df = pd.DataFrame(np.random.randint(0, 30, size = (70, 2)),
                  columns = ["A", "B"],
                  index = pd.date_range("20180101", periods = 70))

Berri_bike = df[["A"]]

Berri_bike['Weekday'] = Berri_bike.index.weekday

weekday_counts = Berri_bike.groupby("Weekday").sum()
print(weekday_counts)
#sample output
          A
Weekday    
0        148
1        101
2        127
3        139
4        163
5         74
6        135

Ещё вопросы

Сообщество Overcoder
Наверх
Меню