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

动态重命名Pandas DataFrame列并写入带时间戳的S3 CSV文件

实现步骤与代码示例

1. 安装依赖包

先确保安装所需的Python库:

pip install pandas boto3 s3fs

2. 核心代码实现

import pandas as pd
from datetime import datetime

# 配置S3基础信息
S3_BUCKET = "你的桶名称"
SOURCE_CSV_PATH = "原CSV在S3的路径"  # 比如 "raw_data/source.csv"
TARGET_ROOT_PATH = "目标根目录路径"  # 比如 "processed_data/exports"

# 生成当前时间戳(用可读的字符串格式,也可替换为整数时间戳)
current_timestamp = datetime.now().strftime("%Y%m%d%H%M%S")

# 从S3读取CSV到DataFrame
df = pd.read_csv(f"s3://{S3_BUCKET}/{SOURCE_CSV_PATH}")

# 动态重命名列(新列名列表需与原CSV列顺序严格一致)
new_column_names = ["新列名1", "新列名2", "新列名3"]  # 替换为你的实际列名列表
# 校验列名数量匹配
if len(new_column_names) != len(df.columns):
    raise ValueError("新列名列表长度与原列数不匹配")
df.columns = new_column_names

# 构造目标S3路径
target_dir = f"{TARGET_ROOT_PATH}/datetime={current_timestamp}"
target_file_path = f"s3://{S3_BUCKET}/{target_dir}/export_current_{current_timestamp}.csv"

# 将DataFrame写入S3
df.to_csv(target_file_path, index=False)  # index=False避免写入默认行索引

print(f"文件已成功写入:{target_file_path}")

关键注意事项

  • AWS凭证配置:确保环境已配置AWS访问凭证(可通过~/.aws/credentials文件、环境变量AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY,或依托IAM角色(在EC2/ECS等AWS服务运行时))。
  • 列名匹配要求:新列名列表的长度必须和原CSV列数完全一致,否则会触发报错。
  • 时间戳自定义:示例用%Y%m%d%H%M%S格式的时间戳,也可替换为整数时间戳(比如int(datetime.now().timestamp()))。
  • S3路径规范:必须遵循s3://桶名称/文件路径的格式,pandas会自动通过s3fs处理S3交互。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:13:12