我正在尝试学习大熊猫,并且正在寻找一个基本的介绍来处理basketball dataset我遇到的问题是创建一个新的groupby数据帧。例如,他正在创建以下我无法查看的内容:
group_by_opp = data.groupby('Opp')
field_goal_per_team = group_by_opp.sum()[['FGA', 'FG']]
data[data.Opp == 'ATL']
他的输出如下表所示:
我的输出具有相同的代码(遵循相同的过程)是下表:
我希望我在工作中犯了某种语法错误,但是想知道你们中的任何人是否可以看看并帮助我理解我在说什么以及我做错了什么。< / p>
非常感谢! 马修
所要求的完整代码:
import vincent
import pandas as pd
from pandas import DataFrame, Series
vincent.core.initialize_notebook()
pd.set_option('display.max_columns', None)
columns = ['Rk','G','Date','Age','Tm','Home/Away','Opp','Win/Lose','GS','MP','FG','FGA','FG%','3P','3PA','3P%','FT','FTA','FT%','ORB','DRB','TRB','AST','STL','BLK','TOV','PF','PTS','GmSc','+/-']
data = pd.read_csv('kd2013.csv', names=columns)
del data['Rk']
del data['Home/Away']
del data['GS']
del data['Win/Lose']
group_by_opp = data.groupby('Opp')
group_by_opp.sum()
data.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 82 entries, 0 to 81
Data columns (total 26 columns):
G 81 non-null float64
Date 82 non-null object
Age 82 non-null object
Tm 82 non-null object
Opp 82 non-null object
MP 82 non-null object
FG 82 non-null object
FGA 82 non-null object
FG% 82 non-null object
3P 82 non-null object
3PA 82 non-null object
3P% 82 non-null object
FT 82 non-null object
FTA 82 non-null object
FT% 82 non-null object
ORB 82 non-null object
DRB 82 non-null object
TRB 82 non-null object
AST 82 non-null object
STL 82 non-null object
BLK 82 non-null object
TOV 82 non-null object
PF 82 non-null object
PTS 82 non-null object
GmSc 82 non-null object
+/- 82 non-null object
dtypes: float64(1), object(25)
编辑:添加加载数据并按要求添加data.info()
。
答案 0 :(得分:0)
所以我的问题的答案是我的CSV文件将所有内容导入为目标文件而不是float64或int64;
我还不确定为什么会这样或最终会如何发生。我怀疑是因为最后一行(对于通常产生整数的大多数条目都是“非活动”)。我写了一个简单的函数来转换我想在vincent中查看的每一列:
def object_to_int(numbers):
return int(numbers)
从那里我将映射函数应用于列:
data['FG'] = map(object_to_int, data['FG'])
data['FGA'] = map(object_to_int, data['FGA'])
我注意到函数引发了一个值错误,因为我无法在字符串上使用int(),为什么会这样?呃,有一列非活动。所以我修剪了那个:
data = data[data.MP != 'Inactive']
瞧:
group_by_opp.sum()
G FG FGA
奥普
ATL 28 21 40