python - 在 str 范围内的 pandas 数据框中使用 find
问题描述
我有一个数据框列
code
0. Slip - Trans:S-BRT4-S-BRT4-98683Store:S-BRT4Terminal:S-BRT4
1. Slip - Trans:M-BXP2-M-BX2-65459Store:M-BXP2Terminal:M-BXP2
2. Slip - Trans:M-YyL2-M-YyL2-93949Store:M-YyL2Terminal:M-YyL2
我想在另一个名为“TTT”的列中指定字符串(粗体下方),如下所示
code TTT
0. Slip - Trans:**S-BRT4-S-BRT4-98683**Store:S-BRT4Terminal:S-BRT4 S-BRT4-S-BRT4-98683
1. Slip - Trans:**M-BXP2-M-BX2-65459**Store:M-BXP2Terminal:M-BXP2 M-BXP2-M-BX2-65459
2. Slip - Trans:**M-YyL2-M-YyL2-93949**Store:M-YyL2Terminal:M-YyL2 M-YyL2-M-YyL2-93949
开始编号是固定的 13,结束是动态的,所以我在中使用 Find('Store:') .str
,我使用以下代码
df['TTT']= df['code'].str[13:df['code'].str.find('Store:')]
上面的代码给了我NaN
而不是必需的字符串。
那不工作你能帮我解决这个问题吗
解决方案
如果需要Trans:
: 和Store:
使用之间的值Series.str.extract
df['TTT']= df['code'].str.extract('Trans:(.*)Store:', expand=False)
print (df)
code TTT
0 Slip - Trans:S-BRT4-S-BRT4-98683Store:S-BRT4Te... S-BRT4-S-BRT4-98683
1 Slip - Trans:M-BXP2-M-BX2-65459Store:M-BXP2Ter... M-BXP2-M-BX2-65459
2 Slip - Trans:M-YyL2-M-YyL2-93949Store:M-YyL2Te... M-YyL2-M-YyL2-93949
另一个想法 double split
:
df['TTT']= df['code'].str.split('Store:').str[0].str.split('Trans:').str[1]
print (df)
code TTT
0 Slip - Trans:S-BRT4-S-BRT4-98683Store:S-BRT4Te... S-BRT4-S-BRT4-98683
1 Slip - Trans:M-BXP2-M-BX2-65459Store:M-BXP2Ter... M-BXP2-M-BX2-65459
2 Slip - Trans:M-YyL2-M-YyL2-93949Store:M-YyL2Te... M-YyL2-M-YyL2-93949
您的解决方案不能像这样使用:
df['TTT']= df['code'].str.split('Store:').str[0].str[13:]
print (df)
code TTT
0 Slip - Trans:S-BRT4-S-BRT4-98683Store:S-BRT4Te... S-BRT4-S-BRT4-98683
1 Slip - Trans:M-BXP2-M-BX2-65459Store:M-BXP2Ter... M-BXP2-M-BX2-65459
2 Slip - Trans:M-YyL2-M-YyL2-93949Store:M-YyL2Te... M-YyL2-M-YyL2-93949
推荐阅读
- mysql - 在 CTE、mySql 之后插入
- java - 如何从Java中的String中删除一部分?
- dataframe - 是否可以在 MapGroupsWithState 之前进行一次大型连接以获取所有数据(MapGroupsWithState 不需要其中大部分数据)?
- javascript - 无法找到输入文本的正确值
- reactjs - 如何使取消令牌在 unMount 上工作
- javascript - Tabulator table.getData() 可以返回与屏幕上的行排序匹配的数据吗?
- excel - 在 VBA 中自动选择一个文件并运行其余代码
- ios - 我想用滑动手势滑动图像以及我试图做但没有工作的页面控制
- google-sheets - 根据下拉列表查找特定单元格
- android - 同步适配器有什么作用?它是否会在应用程序或网站或在线帐户中加载特定页面(比如 yahoo 邮件或 gmail)?