返回多个条件时出现语法错误

2024-06-11 01:46:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法找出代码的问题是什么,它给了我“无效语法错误”,但我遵循确切的说明,它看起来是准确的,我正试图从下面的合并数据(d820hw5p3)中找到30多倍('2B')和联盟中的人。。。你知道发生了什么吗

d820hw5p6= d820hw5p3[(d820hw5p3.2B > 30) & (d820hw5p3.LEAGUE == 'AL')]
d820hw5p6

d820hw5p3是指以下数据:

First         Last    R    H   AB LEAGUE  2B  3B  HR  RBI
0      Leonys       Martin   72  128  518     AL  17   3  15   47
1         Jay        Bruce   74  135  540     NL  27   6  33   99
2      Jackie  Bradley Jr.   94  149  558     AL  30   7  26   87
3      George     Springer  116  168  644     AL  29   5  29   82
4       Corey    Dickerson   57  125  510     AL  36   3  24   70
5      Dexter       Fowler   84  126  457     NL  25   7  13   48
6       Angel        Pagan   71  137  495     NL  24   5  12   55
7        Adam        Eaton   91  176  620     AL  29   9  14   59
8     Yasmany        Tomas   72  144  529     NL  30   1  31   83
9     Gregory      Polanco   79  136  527     NL  34   4  22   86
10      Nomar       Mazara   59  137  515     AL  13   3  20   64
11     Justin        Upton   81  140  569     AL  28   2  31   87
12      Bryce       Harper   84  123  506     NL  24   2  24   86
13       Kole      Calhoun   91  161  594     AL  35   5  18   75
14      Ender     Inciarte   85  152  522     NL  24   7   3   29
15     Jacoby     Ellsbury   71  145  551     AL  24   5   9   56
16     Curtis   Granderson   88  129  544     NL  24   5  30   59
17     Mookie        Betts  122  214  673     AL  42   5  31  113
18     Denard         Span   70  152  571     NL  23   5  11   53
19       Adam       Duvall   85  133  552     NL  31   6  33  103
20      Brett      Gardner   80  143  548     AL  22   6   7   41
21       Matt         Kemp   89  167  623     NL  39   0  35  108
22      Khris        Davis   85  137  555     AL  24   2  42  102
23       Mike        Trout  123  173  549     AL  32   5  29  100
24      Melky      Cabrera   70  175  591     AL  42   5  14   86
25       Jose     Bautista   68   99  423     AL  24   1  22   69
26        Ian      Desmond  107  178  625     AL  29   3  22   86
27       Alex       Gordon   62   98  445     AL  16   2  17   40
28       Ryan        Braun   80  156  511     NL  23   3  30   91
29       Nick     Markakis   67  161  599     NL  38   0  13   89
30     Carlos     Gonzalez   87  174  584     NL  42   2  25  100
31     Yoenis     Cespedes   72  134  479     NL  25   1  31   86
32    Stephen     Piscotty   86  159  582     NL  35   3  22   85
33    Michael     Saunders   70  124  490     AL  32   3  24   57
34     Jayson        Werth   84  128  525     NL  28   0  21   69
35      Howie     Kendrick   65  124  486     NL  26   2   8   40
36       Adam        Jones   86  164  619     AL  19   0  29   83
37    Marcell        Ozuna   75  148  556     NL  23   6  23   76
38      Jason      Heyward   61  122  530     NL  27   1   7   49
39     Marwin     Gonzalez   55  123  484     AL  26   3  13   51
40   Starling        Marte   71  152  489     NL  34   5   9   46
41       J.D.     Martinez   69  141  459     AL  35   2  22   68
42      Kevin       Pillar   59  146  549     AL  35   2   7   53
43    Charlie     Blackmon  111  187  577     NL  35   5  29   82
44     Odubel      Herrera   87  167  584     NL  21   6  15   49
45  Christian       Yelich   78  172  577     NL  38   3  21   98
46     Andrew    McCutchen   81  153  598     NL  26   3  24   79

Tags: 数据代码abnlhrfirstlastal
1条回答
网友
1楼 · 发布于 2024-06-11 01:46:08

我根据AMC的直觉,认为以2开头的列是有问题的,并创建了这个最小的可复制示例:

import pandas as pd
# define Data Frame
df= pd.DataFrame({
    'name': ['A', 'B', 'C'],
    '2b': [1, 2, 3],
    'b2': [4, 5, 6],
})

# Try to access column 2b
df.2b

返回SyntaxError: invalid syntax

df['2b']返回预期的序列。 我对这方面的文档做了一个简短的搜索,没有看到任何内容,但我认为它与此有关:Variable names in Python cannot start with a number or can they?

最后,虽然2b是一个有效的列名,但您必须使用df['column']方法访问它的系列

相关问题 更多 >