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

如何遍历堆叠DataFrame的日期与列内容并访问打印字符串及数字值

处理堆叠DataFrame并提取字符串与数值

首先,你的堆叠DataFrame里date列存在空值(对应同一日期的多行数据),第一步得先把这些空值填充为对应的日期,这样每一行都能关联到正确的日期。之后我们就可以拆分New Column里的字符串和数值部分了。

步骤1:填充日期列的空值

先用ffill()(前向填充)把date列的空值补上,确保每行都有对应的日期:

import pandas as pd

# 假设你的堆叠DataFrame是stacked
stacked['date'] = stacked['date'].ffill()

步骤2:遍历并提取内容

接下来可以遍历每一行,或者按日期分组遍历。这里提供两种实用方式:

方式1:逐行遍历

直接遍历DataFrame的每一行,拆分New Column的内容:

for index, row in stacked.iterrows():
    current_date = row['date']
    # 拆分字符串和数字:用空格从右边分割1次,把最后面的数字分离出来
    content_parts = row['New Column'].rsplit(' ', 1)
    # 前面的部分是字符串,后面的转成float类型的数值
    str_value = content_parts[0].strip()
    num_value = float(content_parts[1].strip())
    
    print(f"日期: {current_date}")
    print(f"字符串内容: {str_value}")
    print(f"数值: {num_value}\n")

方式2:按日期分组遍历

如果想先按日期分组,再批量处理每个日期下的所有行:

for date, group in stacked.groupby('date'):
    print(f"=== 日期: {date} ===")
    for idx, row in group.iterrows():
        content_parts = row['New Column'].rsplit(' ', 1)
        str_value = content_parts[0].strip()
        num_value = float(content_parts[1].strip())
        
        print(f"字符串内容: {str_value}")
        print(f"数值: {num_value}")
    print("\n")

小说明

  • rsplit(' ', 1)是核心操作:从字符串右侧开始按空格分割1次,能精准把最后的数值和前面带空格的文本(比如你的例子里的"Not Found")分开,避免拆分出错。
  • strip()用来去除内容里多余的空格,确保提取的信息干净整洁。
  • 把数值转成float类型后,后续如果需要做计算也更方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 06:47:42