career regular season statistics    
  
  | Year | Team | League | 
        GP         Games Played 
       | 
      
        AB         At Bats	 
       | 
      
        R         Runs	 
       | 
      
        H         Hits	 
       | 
      
        2B         Doubles	 
       | 
      
        3B         Triples	 
       | 
      
        HR         Home Runs	 
       | 
      
        RBI         Runs Batted In	 
       | 
      
        BB         Walks	 
       | 
      
        SO         Strikeouts	 
       | 
      
        SB         Stolen Bases	 
       | 
      
        CS         Caught Stealing	 
       | 
      
        AVG         Batting Average	 
       | 
      
        OBP         On-Base Percentage	 
       | 
      
        SLG         Slugging Percentage 
       | 
      
        OPS         On-Base Plus Slugging 
       | 
    
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025 | Pittsburgh | NL | 154 | 587 | 68 | 144 | 38 | 3 | 16 | 73 | 57 | 173 | 3 | 2 | .245 | .318 | .402 | .720 | 
| 2024 | Pittsburgh | NL | 156 | 622 | 73 | 171 | 29 | 3 | 24 | 88 | 57 | 156 | 10 | 2 | .275 | .344 | .447 | .791 | 
| 2023 | Pittsburgh | NL | 145 | 574 | 85 | 151 | 31 | 5 | 24 | 84 | 53 | 138 | 12 | 1 | .263 | .330 | .460 | .790 | 
| 2022 | Pittsburgh | NL | 145 | 542 | 74 | 142 | 19 | 4 | 27 | 62 | 56 | 141 | 7 | 3 | .262 | .345 | .461 | .807 | 
| 2021 | Pittsburgh | NL | 159 | 559 | 93 | 169 | 35 | 8 | 24 | 90 | 75 | 119 | 5 | 2 | .302 | .390 | .522 | .912 | 
| 2020 | Pittsburgh | NL | 55 | 185 | 24 | 35 | 6 | 2 | 7 | 19 | 21 | 57 | 1 | 1 | .189 | .275 | .357 | .632 | 
| 2019 | Pittsburgh | NL | 134 | 491 | 83 | 154 | 37 | 4 | 16 | 68 | 46 | 121 | 3 | 2 | .314 | .377 | .503 | .880 | 
| 2019 | Indianapolis | AAA | 13 | 49 | 10 | 18 | 1 | 1 | 5 | 11 | 7 | 11 | 3 | 2 | .367 | .446 | .735 | 1.181 | 
| 2018 | Altoona | AA | 88 | 331 | 56 | 100 | 18 | 3 | 7 | 46 | 43 | 73 | 4 | 4 | .302 | .381 | .438 | .819 | 
| 2017 | San Jose | A | 121 | 491 | 72 | 153 | 26 | 9 | 10 | 63 | 37 | 106 | 5 | 3 | .312 | .364 | .462 | .826 | 
| 2016 | Augusta | A | 16 | 63 | 11 | 20 | 5 | 0 | 1 | 8 | 3 | 20 | 1 | 0 | .317 | .348 | .444 | .793 | 
| 2016 | Salem-Keizer | A | 40 | 154 | 28 | 48 | 12 | 1 | 5 | 30 | 11 | 41 | 2 | 0 | .312 | .368 | .500 | .868 | 
| 2016 | Vanderbilt | NCAA | 62 | 224 | 59 | 74 | 16 | 3 | 13 | 56 | 49 | 58 | 8 | 5 | .330 | .461 | .603 | - | 
| 2015 | Vanderbilt | NCAA | 72 | 286 | 56 | 91 | 18 | 4 | 5 | 49 | 31 | 67 | 17 | 2 | .318 | .388 | .462 | - | 
| 2014 | Vanderbilt | NCAA | 72 | 281 | 53 | 95 | 24 | 2 | 4 | 54 | 23 | 49 | 14 | 6 | .338 | .395 | .480 | - | 
| - | Total | NL | 948 | 3560 | 500 | 966 | 195 | 29 | 138 | 484 | 365 | 905 | 41 | 13 | .271 | .346 | .459 | .805 | 
| - | Total | AAA | 13 | 49 | 10 | 18 | 1 | 1 | 5 | 11 | 7 | 11 | 3 | 2 | .367 | .446 | .735 | 1.181 | 
| - | Total | AA | 88 | 331 | 56 | 100 | 18 | 3 | 7 | 46 | 43 | 73 | 4 | 4 | .302 | .381 | .438 | .819 | 
| - | Total | A | 177 | 708 | 111 | 221 | 43 | 10 | 16 | 101 | 51 | 167 | 8 | 3 | .312 | .366 | .469 | .835 | 
| - | Total | NCAA | 206 | 791 | 168 | 260 | 58 | 9 | 22 | 159 | 103 | 174 | 39 | 13 | .329 | .413 | .508 | .921 |