如何遍历堆叠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
相关产品推荐
相关产品推荐

