创建包含来自数据帧的两个特定年份的数据帧



我正在使用panda,我一直在为2012年和2015年以及"团队"TOR和NYA制作新的DataFrame。我导入了一个.csv文件,这就是我想称之为2012年和2015年的地方,并将它们放入一个单独的DataFrame中。

df_2012 = pd.DataFrame(df_baseball[(df_baseball['Year '] == 2012) & 
(df_baseball['Year '] == 2015) & 
(df_baseball['Team '] == 'TOR') & 
(df_baseball['Team '] == 'NYA')], 
columns = ['Games_Won', 'Runs_Scored','At_Bats','Hits',
'Doubles','Triples','Home_Runs','Walks', 
'Runs_Against','Earned_Runs',
'Earned_Run_Average','Complete_Games',
'Shutout','Saves','Infield_Put_Outs',
'Hits_Allowed','Home_Run_Allowed', 
'Walks_Allowed','Strikeouts_Allowed',
'Errors','Fielding_Percentage'])

我是用错了运算符还是语法错误?非常感谢您的回复!

您需要OR运算符,因为一年不能同时是2012年和2015年;同样,一个团队不能同时成为TOR和NYA。您也可以使用isin,而不是在每个条件之间写OR。

此外,由于isin(或or(创建了一个可用于过滤df_baseball的布尔掩码,因此不需要将结果传递给DataFrame构造函数,因为切片结果将是DataFrame,因此以下内容就足够了:

df_2012 = df_baseball[df_baseball['Year '].isin([2012, 2015]) & df_baseball['Team '].isin(['TOR','NYA'])]

最新更新