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

如何将numpy.ndarray转为字符串并按分隔符拆分元素子串

拆分数组元素并筛选DataFrame子集

1. 拆分数组中的时间周期元素

你的Year_Start_End数组里的每个元素格式为年份_时间段,可以用split('_', 1)方法仅拆分一次,将元素拆成年份和时间段两个子串:

# 遍历数组拆分每个元素
for period in Year_Start_End:
    year, half_year = period.split('_', 1)
    # 直接使用拆分后的year和half_year变量
    print(f"年份: {year}, 时间段: {half_year}")

split('_', 1)的第二个参数1确保只按第一个下划线拆分,避免误拆分Jan_Jun内部的下划线。

2. 用拆分后的子串获取DataFrame子集

有两种实用方式可以实现:

方式一:遍历拆分结果直接筛选

循环处理每个时间周期,拆分后通过布尔索引筛选对应子集:

for period in Year_Start_End:
    year, half_year = period.split('_', 1)
    # 筛选同时匹配年份和时间段的数据
    subset = data_copy[
        (data_copy['Year_Start_End'].str.startswith(year)) & 
        (data_copy['Year_Start_End'].str.endswith(half_year))
    ]
    # 若需求是按完整周期单独取数,可直接匹配period
    # subset = data_copy[data_copy['Year_Start_End'] == period]
    
    # 对子集执行后续操作,比如查看行数
    print(f"{year}年{half_year}的子集行数: {len(subset)}")

方式二:新增列后灵活筛选

先给data_copy新增年份和时间段列,后续可重复使用这两列进行各种筛选:

# 拆分Year_Start_End列,生成两个新列
data_copy[['Year', 'Half_Year']] = data_copy['Year_Start_End'].str.split('_', 1, expand=True)

# 示例:筛选2016年上半年的数据
subset_2016_h1 = data_copy[(data_copy['Year'] == '2016') & (data_copy['Half_Year'] == 'Jan_Jun')]

# 示例:筛选所有年份的上半年数据
all_first_half = data_copy[data_copy['Half_Year'] == 'Jan_Jun']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:15:34