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

将numpy数组元素转为同日期的独立pandas DataFrame行

解决方法:用pandas的explode()拆分数组列成多行

这问题我熟!你要的就是把包含numpy数组的列拆分成单行元素,同时保留对应日期不变,pandas的explode()方法正好能完美搞定这个需求,操作起来超简单。

步骤1:构造原DataFrame(方便你复现)

先把你的示例数据用代码还原出来:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'date': ['2014-11-26', '2015-12-20', '2016-02-17', '2016-02-23'],
    'website+': [np.array(['A']), np.array(['B', 'C']), np.array(['D']), np.array(['E', 'F', 'G'])]
})

步骤2:核心操作——拆分数组列

直接调用explode()方法,指定要拆分的列名即可:

# 拆分数组列,自动保留对应date值
result_df = df.explode('website+')

查看结果

运行后你会得到完全符合预期的输出:

date website+
0  2014-11-26        A
1  2015-12-20        B
1  2015-12-20        C
2  2016-02-17        D
3  2016-02-23        E
3  2016-02-23        F
3  2016-02-23        G

可选:重置索引(如果不需要原索引)

如果觉得原索引重复看着不舒服,可以重置成连续索引:

result_df = result_df.reset_index(drop=True)

重置后的结果索引会变成0,1,2,3,4,5,6,更整洁。

补充说明

  • explode()不仅支持numpy数组,对普通Python列表也同样有效,只要列里的元素是可迭代对象就行;
  • 拆分后其他列(比如这里的date)的值会自动和拆分后的行一一对应,完全不需要手动处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:10:50