Python numpy数组中每个元素的前x个字符

Python numpy数组中每个元素的前x个字符,python,numpy,dataframe,Python,Numpy,Dataframe,我有一个大的数据集(6百万行)。对于给定的列时间戳,我希望获取每个元素的前11个字符并构造一个新列。到目前为止,我是用apply方法来做的,但这需要很长时间 df_value_dl['time_sec'] = df_value_dl.apply(lambda x: str(x['timestamp'])[0:10], axis=1) 在寻找更快的方法时,我遇到了 使用np数组执行此操作的正确语法是什么。谢谢,以防你还没有找到解决方案:这个 df_value_dl['time_sec'] = d

我有一个大的数据集(6百万行)。对于给定的列时间戳,我希望获取每个元素的前11个字符并构造一个新列。到目前为止,我是用apply方法来做的,但这需要很长时间

df_value_dl['time_sec'] = df_value_dl.apply(lambda x: str(x['timestamp'])[0:10], axis=1)
在寻找更快的方法时,我遇到了


使用np数组执行此操作的正确语法是什么。谢谢,以防你还没有找到解决方案:这个

df_value_dl['time_sec'] = df_value_dl['timestamp'].astype('string').str[:10]

应该比
中的
apply

pandas
字符串是python字符串,位于
object
dtype列中
pandas
有一些排序
str
方法,可以加快处理这些字符串的速度
numpy
具有不同的字符串数据类型,可以执行此截断,但转换入/出pandas系列需要花费大量时间。我建议研究熊猫文档的字符串方法。