我有一个赛季篮球得分的数据框,我想找到每支球队在本赛季参加的每场比赛的比赛之间的天数。
示例框架:
testDateFrame = pd.DataFrame({'HomeTeam': ['HOU', 'CHI', 'DAL', 'HOU'],
'AwayTeam' : ['CHI', 'DAL', 'CHI', 'DAL'],
'HomeGameNum': [1, 2, 2, 2],
'AwayGameNum' : [1, 1, 3, 3],
'Date' : [datetime.date(2014,3,11), datetime.date(2014,3,12), datetime.date(2014,3,14), datetime.date(2014,3,15)]})
Run Code Online (Sandbox Code Playgroud)
我想要的输出是这样的:
AwayGameNum AwayTeam Date HomeGameNum HomeTeam AwayRest HomeRest
1 CHI 2014-03-11 1 HOU nan nan
1 DAL 2014-03-12 2 CHI nan 0
3 CHI 2014-03-14 2 DAL 1 1
3 DAL 2014-03-15 2 HOU 0 3
Run Code Online (Sandbox Code Playgroud)
其中 AwayRest、HomeRest 列是 AwayTeam、HomeTeam -1 的比赛之间的天数
我有这样的字典
d = {1:'Bob', 2:'Joe', 3:'Bob', 4:'Bill', 5:'Bill'}
Run Code Online (Sandbox Code Playgroud)
我想要计算每个名称作为字典值出现的次数.所以,输出应该是这样的:
d = {1:['Bob', 1], 2:['Joe',1], 3:['Bob', 2], 4:['Bill',1] , 5:['Bill',2]}
Run Code Online (Sandbox Code Playgroud) 这是我的清单
myList = ['Bob', '5-10', 170, 'Tom', '5-5', 145, 'Bill', '6-5', '215']
Run Code Online (Sandbox Code Playgroud)
我想写成这样的字典.
{'Bob': ['5-10', 170], 'Bill': ['6-5', '215'], 'Tom': ['5-5', 145]}
Run Code Online (Sandbox Code Playgroud)
我想出了这个,但它非常难看,不会扩大规模.
def MakeDict():
d = {}
for x, i in zip(myList, range(len(myList))):
if i in (0, 3, 6):
name = x
elif i in (1, 4, 7):
hieght = x
elif i in (2, 5, 8):
wieght = x
d[name] = [hieght, wieght]
return d
Run Code Online (Sandbox Code Playgroud)
我能做什么?
我可以做这个:
x ='dog'
testvar = 1 if x == 'dog' else 0
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我的x可以是三件事之一.'狗','猫,或''(空)
如果x =='dog',我想设置testvar等于1,如果x =='cat,则等于2,如果x.isspace()== True,则等于0.
这样做的最佳方式是什么?
我试图从ESPN.com中抓取一些盒子分数并将它们放入Pandas DataFrame中.我过去也以同样的方式做过类似的事情,没有任何问题.但是在这种情况下,当我尝试保存DataFrame时,我收到此错误.
RuntimeError:调用Python对象时超出了最大递归深度
尝试将其保存为hdf5表时,我收到类似的错误.
即使这个片段也会出现同样的错误.我很困惑为什么这样做?这与功能有关吗?
url = 'http://espn.go.com/nba/boxscore?gameId=400278773'
boxurl = urllib2.urlopen(url).read()
soup = BeautifulSoup(boxurl)
tables = soup.findAll('table')
lineScoreTable = tables[-2]
lineScoreRows = lineScoreTable.findAll('tr')
def GetAwayQTRScores():
scoreRow = lineScoreRows[1].findAll('td')
awayQTRScores = []
for x in scoreRow:
scores = x.string
awayQTRScores.append(scores)
return awayQTRScores # returns list
awayQTRScores = GetAwayQTRScores()
awayTeam = awayQTRScores[0]
awayQ1 = int(awayQTRScores[1])
awayQ2 = int(awayQTRScores[2])
awayQ3 = int(awayQTRScores[3])
awayQ4 = int(awayQTRScores[4])
awayOT1 = np.nan if len(awayQTRScores) < 7 else int(awayQTRScores[5])
awayOT2 = np.nan if len(awayQTRScores) < 8 else int(awayQTRScores[6]) …Run Code Online (Sandbox Code Playgroud)