You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将用户输入的球员数据转为CSV格式?Pandas使用遇阻求助

解决方法

核心问题

你用input()只能读取单行文本,粘贴多行球员数据时,只有第一行(表头)被捕获,后续数据行全部丢失,导致导出的CSV只有表头。

具体实现步骤

1. 改用多行输入读取

用sys.stdin读取所有粘贴的内容,支持多行输入。在终端粘贴数据后,按以下快捷键结束输入:

  • Linux/macOS:Ctrl + D
  • Windows:Ctrl + Z 然后按回车

2. 处理文本格式

FBref表格粘贴后的数据通常是制表符(\t)分隔,可以直接按制表符拆分每行字段;如果是多空格分隔,用正则处理连续空格。

3. 完整代码示例

import pandas as pd
import sys
import re

# 读取所有粘贴的多行内容
raw_data = sys.stdin.read().strip().split('\n')

# 过滤空行
raw_data = [line for line in raw_data if line.strip()]

# 拆分表头和数据行
header = raw_data[0]
data_rows = raw_data[1:]

# 自动识别分隔符:优先制表符,否则按连续空格拆分
if '\t' in header:
    separator = '\t'
else:
    separator = re.compile(r'\s{2,}')

# 处理表头字段
header_fields = [field.strip() for field in separator.split(header)]

# 处理数据行字段,确保和表头字段数匹配
processed_data = []
for row in data_rows:
    fields = [field.strip() for field in separator.split(row)]
    if len(fields) == len(header_fields):
        processed_data.append(fields)

# 构建DataFrame并导出CSV
df = pd.DataFrame(processed_data, columns=header_fields)
df.to_csv('player_stats.csv', index=False, encoding='utf-8')

print("CSV文件已成功导出:player_stats.csv")

额外注意事项

  • 如果FBref表格是复合表头(含两行表头),需要先手动合并表头字段,或修改代码处理两行表头的逻辑。
  • 粘贴数据时尽量只选中表格内内容,减少空行或无效数据干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:30:55