我在数据帧中有一列,我试图从字符串中提取8位数字.我该怎么做

    Input
 Shipment ID
20180504-S-20000
20180514-S-20537
20180514-S-20541
20180514-S-20644
20180514-S-20644
20180516-S-20009
20180516-S-20009
20180516-S-20009
20180516-S-20009

Expected Output

Order_Date
20180504
20180514
20180514
20180514
20180514
20180516
20180516
20180516
20180516

我try 了下面的代码,但没有成功.

data['Order_Date'] = data['Shipment ID'][:8]

推荐答案

你很接近,需要索引str,这适用于每个Series的值:

data['Order_Date'] = data['Shipment ID'].str[:8]

如果没有NaNs值,则要获得更好的性能:

data['Order_Date'] = [x[:8] for x in data['Shipment ID']]

print (data)
        Shipment ID Order_Date
0  20180504-S-20000   20180504
1  20180514-S-20537   20180514
2  20180514-S-20541   20180514
3  20180514-S-20644   20180514
4  20180514-S-20644   20180514
5  20180516-S-20009   20180516
6  20180516-S-20009   20180516
7  20180516-S-20009   20180516
8  20180516-S-20009   20180516

如果按位置省略str代码过滤器列,则前N个值如下:

print (data['Shipment ID'][:2])
0    20180504-S-20000
1    20180514-S-20537
Name: Shipment ID, dtype: object

Python-3.x相关问答推荐

Pandas 数据帧断言等同于NaN

字符串块数组:如何根据一个数组中的元素对另一个数组中的元素进行分组

使用递归将int转换为字符串

我不能使用拆分来分隔数据

使用数据库将文件从Sharepoint下载到文件系统

向前/向后移动导致移动行的数据不可见

错误:无法为 pyconcorde 构建轮子,这是安装基于 pyproject.toml 的项目所必需的

对大型数据框中的选定列进行重新排序

如何使用Selenium从网站下拉菜单中获取值列表?

如何在不使用循环的情况下根据另一个数组的索引值将 numpy 数组中不同通道的值设置为零?

如何在 Python 中 cv2 的窗口标题上动态更新 FPS

如何在两个矩阵的比较中允许任何列的符号差异,Python3?

如果原始字符串包含正斜杠,如何返回具有不同可能性的新字符串

将元组列表转换为以整个元组为键的字典列表

使用 from re findall 组合连续匹配并分离非连续匹配

在 Django 中执行 JSONRenderer.render(serialized_student_data.data) 时遇到问题

使用 Python 解析 JSON 嵌套字典

在 sklearn.decomposition.PCA 中,为什么 components_ 是负数?

为什么 string.maketrans 在 Python 3.1 中不起作用?

如何删除目录? os.removedirs 和 os.rmdir 是否只用于删除空目录?