小编use*_*196的帖子

python pandas timedelta 特定行

我有一个赛季篮球得分的数据框,我想找到每支球队在本赛季参加的每场比赛的比赛之间的天数。

示例框架:

  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 的比赛之间的天数

python datetime timedelta pandas

1
推荐指数
1
解决办法
2225
查看次数

python在dict中运行值的计数

我有这样的字典

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)

python counter dictionary

1
推荐指数
2
解决办法
1222
查看次数

列表到字典python

这是我的清单

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)

我能做什么?

python dictionary list-comprehension list

1
推荐指数
1
解决办法
64
查看次数

可以用多个if语句设置变量吗?

我可以做这个:

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.

这样做的最佳方式是什么?

python python-2.7

0
推荐指数
1
解决办法
130
查看次数

最大递归错误Python

我试图从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)

python pandas

0
推荐指数
1
解决办法
1756
查看次数