我有一个python列表,它是从pandas系列中派生出来的,如下所示:
dsa = pd.Series(crew_data['Work Type'])
disc = [dsa]
print(disc)
结果如下:
[0 Disc - Standard Removal & Herbicide
1 Disc - Standard Removal & Herbicide
2 Standard Trim
3 Disc - Hazard Tree
4 Disc - Hazard Tree
...
134 Disc - Hazard Tree
135 Disc - Hazard Tree
136 Disc - Hazard Tree
137 Disc - Hazard Tree
138 Disc - Hazard Tree
Name: Work Type, Length: 139, dtype: object]
现在,下一步是对每个元素的前4个字符进行切片,以便返回的值是Disc
当在单个字符串上执行时,这似乎很简单,但是由于某种原因,尝试使用列表执行此操作时,似乎几乎是不可能的。这可以简单地在Excel中使用公式=LEFT(A1,4)来完成,所以肯定可以在python中简单地完成吗
如果有人有一个解决方案,那就太好了
使用示例数据帧
选择一列给我一个系列;不需要另一个系列包装器
我们可以把它列在一个列表中,但这没有任何好处:
我们可以将值提取为numpy数组:
我们可以对数组或序列中的每个元素应用字符串切片-使用列表理解:
列表理解不一定是最“高级”的方式,但它是一个良好的开端。实际上它接近最佳,因为切片字符串必须使用字符串方法;没有其他人实现字符串切片
pandas
有一个str
方法用于将字符串方法应用于序列:这比列表理解更清晰、更美观,但实际上速度较慢
我可能遗漏了问题的要点,但这里有一个正则表达式实现
输出:
相关问题 更多 >
编程相关推荐