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

如何将DataFrame中numpy.ndarray类型列转换为list并解决报错

问题描述

我有如下DataFrame:

SNoValues
1['h', 'e', 'l', 'o']
2['p', 'a', 'r', 'i', 's']
3['a', 'm', 'e', 'r', 'i', 'c', 'a']

执行type(df['Values'][0])后,确认Values列的数据类型为numpy.ndarray。我尝试将该列转为list类型后,执行以下代码:

df[['SNo','Values']].set_index(['SNo']).apply(lambda x: ", ".join(list(x)))

但运行后抛出错误:

TypeError: sequence item 0: expected str instance, numpy.ndarray found
解决方法

报错的核心原因是apply默认按列执行操作,你写的lambda x里的x指代的是整列的numpy.ndarray对象,而非每行的单个数组元素。要实现每行数组转逗号分隔字符串,直接针对Values列处理即可,无需多余操作:

  1. (可选)将Values列的numpy数组转为list(numpy数组本身支持直接遍历拼接,这一步不是必须的):
df['Values'] = df['Values'].apply(list)
  1. 直接对Values列做字符串拼接:
df['Joined_Values'] = df['Values'].apply(lambda arr: ", ".join(arr))

如果需要将SNo设为索引,可简化为:

result = df.set_index('SNo')['Values'].apply(lambda arr: ", ".join(arr))

执行后就能得到每行数组对应的逗号分隔字符串,不会再触发类型错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 02:18:20