You need to enable JavaScript to run this app. 拆分DataFrame列为两列时代码无报错但DataFrame未变化的问题
优惠活动
大模型
产品
解决方案
定价
更多

拆分DataFrame列为两列时代码无报错但DataFrame未变化的问题

无报错但表结构无变化的核心原因

两点完全符合pandas运行逻辑、但极易忽略的非语法问题:

  • 所有DataFrame的列运算、拼接、拆分操作,默认都会返回全新的表对象,不会直接修改原表。你代码里的players_log.join(...)运算结果没有赋值给任何变量,执行完就直接被内存回收,原有的players_log从始至终没有被改动,因此不会触发报错,也看不到任何结构变化。
  • 你在所有拆分操作执行前就通过game_log = players_log.head()取了前5行数据,哪怕后续完成了表结构修改,game_log存储的还是拆分前的旧数据,打印时自然看不到拆分效果。
修正后的可运行代码
import requests
import pandas as pd

url = 'https://www.teamrankings.com/nba/player/clint-capela/game-log'
html = requests.get(url).content
get_log = pd.read_html(html)
players_log = get_log[0]

# 直接拆分目标列生成对应命名的新列,无需额外拼接
players_log[['FGM', 'FGA']] = players_log['FGM-FGA'].str.split('-', 1, expand=True)

# 完成所有列修改后再提取前5行的日志数据
game_log = players_log.head()

# 验证表结构变化
players_log.info()
print(game_log)

如果你坚持沿用原来的join写法,必须把拼接结果重新赋值给原变量,写法为:

players_log = players_log.join(
    players_log['FGM-FGA'].str.split('-', 1, expand=True).rename(columns={0:'FGM', 1:'FGA'})
)

不赋值直接执行join和split的话,运算结果会直接被丢弃,不会对原表产生任何影响。

内容的提问来源于stack exchange,提问作者mcfadX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.30 09:27:03