Row*_*ing 2 python pandas pandas-groupby
我是 Python 的初学者,我正在学习一本教科书来学习 Pandas 模块。我有一个名为 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
Run Code Online (Sandbox Code Playgroud)
我的 Berri_bilk 中有 3 列,一个数据索引 - 从 1/1/2012 到 12/31/2012,以及每个数据带有数字的值列,以及我分配给它的工作日列。但是当我想按值分组时,出现错误:ValueError: Grouper and axis must be same length,我不确定这是什么意思,我想做的很简单,就像在 SQL 中一样,sum(value)工作日分组...谁能告诉我这里发生了什么?
您将列复制到 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7793 次 |
| 最近记录: |