Pandas 2.2.3中astype(str)返回np.str_,如何高效转原生字符串?
将Pandas中np.str_类型序列转为Python原生字符串列表的高效方法
解决方案
方法1:利用astype(object) + tolist()
如果处理的是numpy数组形式的np.str_序列:
import numpy as np # 示例np.str_数组 np_str_arr = np.array([np.str_('1234'), np.str_('123'), np.str_('345')]) # 转为原生str列表 native_str_list = np_str_arr.astype(object).tolist()
如果处理的是Pandas Series:
import pandas as pd # 示例Series,元素为np.str_类型 s = pd.Series([1234, 123, 345]).astype(str) # 转为原生str列表 native_str_list = s.astype(object).tolist()
这个方法基于向量级操作,内部由numpy/Pandas批量处理类型转换,效率远高于列表推导式这类逐元素循环操作。
方法2:指定dtype转numpy数组后转列表
针对Pandas Series,也可以直接在转numpy数组时指定dtype=object,再转为列表:
native_str_list = s.to_numpy(dtype=object).tolist()
效果与方法1一致,同样是高效的批量转换方式。
验证转换结果
可以通过以下代码确认元素类型为Python原生字符串:
print(type(native_str_list[0])) # 输出:<class 'str'>
内容的提问来源于stack exchange,提问作者SeF
相关产品推荐
相关产品推荐

