在Pandas中应用LEFT、RIGHT、MID的8种方法

有时,你可能需要提取字符串中的特定字符。然后,你可以在Pandas中应用 Left、Right 和 Mid 的概念来获取字符串中所需的字符。
Pandas如何使用LEFT、RIGHT?在本教程中,你将看到以下 8 个描述如何提取特定字符的场景:

  1. 从LEFT
  2. 从RIGHT
  3. 从MID
  4. 符号前
  5. 前一个空格
  6. 一个符号后
  7. 相同符号之间
  8. 不同符号之间
在 Pandas 中查看 LEFT、RIGHT、MID对于上述每个场景,目标是提取字符串中的数字。例如,对于“  55555-abc  ”字符串,目标是仅提取 55555 的数字。
现在让我们回顾一下仅获取左侧数字的第一种情况。
场景 1:从左侧提取字符
Pandas应用LEFT、RIGHT、MID:假设你有以下 3 个字符串:
Identifier
55555-abc
77777-xyz
99999-mmm
你可以使用Pandas DataFrame在 Python 中捕获这些字符串。
由于你只想从左侧提取五位数字,因此你可以将str[:5]的语法应用于  'Identifier' 列,Pandas使用LEFT、RIGHT、MID的示例如下:
import pandas as pddata = https://www.lsbin.com/{'Identifier': [ '55555-abc','77777-xyz','99999-mmm']} df = pd.DataFrame(data, columns= [ 'Identifier']) left = df[ 'Identifier'].str[ :5]print (left)

运行Python 代码后,你将只获得左侧的数字:
055555 177777 299999

场景 2:从右侧提取字符
在这种情况下,目标是从右边获得五位数字
Identifier
ID-55555
ID-77777
ID-99999
要实现此目标,  请将str[-5:]应用于 'Identifier' 列:
import pandas as pddata = https://www.lsbin.com/{'Identifier': [ 'ID-55555','ID-77777','ID-99999']} df = pd.DataFrame(data, columns= [ 'Identifier']) right = df[ 'Identifier'].str[ -5:]print (right)

这将确保你将获得右侧的五位数:
055555 177777 299999

场景 3:从中间提取字符
在某些情况下,你可能需要从字符串的中间提取数据:
Identifier
ID-55555-End
ID-77777-End
ID-99999-End
要仅从中间提取数字,你需要指定所需字符的起点和终点。在这种情况下,起点是“3”,而终点是“8”,因此你需要按如下方式应用str[3:8]:
import pandas as pddata = https://www.lsbin.com/{'Identifier': [ 'ID-55555-End','ID-77777-End','ID-99999-End']} df = pd.DataFrame(data, columns= [ 'Identifier']) mid = df[ 'Identifier'].str[ 3:8]print (mid)

只会检索字符串中间的五位数字:
055555 177777 299999

场景 4:在符号之前
假设你要获取破折号 ('-') 之前的所有数字:
Identifier
111-IDAA
2222222-IDB
33-IDCCC
即使你的字符串长度发生变化,你仍然可以通过添加以下两个组件来检索左侧的所有数字:
  • str.split('-')  – 你需要将符号放在括号内。在我们的例子中,它是破折号
  • str[0]  – 你需要在其中放置 0 以从左侧获取字符
这是完整的 Python 代码:
import pandas as pddata = https://www.lsbin.com/{'Identifier': [ '111-IDAA','2222222-IDB','33-IDCCC']} df = pd.DataFrame(data, columns= [ 'Identifier']) before_symbol = df[ 'Identifier'].str.split('-').str[ 0]print (before_symbol)

结果:
0111 12222222 233

场景 5:在一个空间之前
【在Pandas中应用LEFT、RIGHT、MID的8种方法】如果字符串中有空格怎么办?
Identifier
第111话
2222222 国际开发银行
33 IDCCC
在这种情况下,只需在拆分中留一个空格:    str.split(' '),Pandas使用LEFT、RIGHT、MID的示例:
import pandas as pddata = https://www.lsbin.com/{'Identifier': [ '111 IDAA','2222222 IDB','33 IDCCC']} df = pd.DataFrame(data, columns= [ 'Identifier']) before_space = df[ 'Identifier'].str.split(' ').str[ 0]print (before_space)

只会获得左边的数字:
0111 12222222 233

场景 6:在一个符号之后
Pandas应用LEFT、RIGHT、MID:你可能还面临这样的情况:你希望获取变长字符串的符号(例如破折号)后的所有字符:
Identifier
IDAA-111
IDB-2222222
IDCCC-33
在这种情况下,你需要将 str[] 中的值调整为 1,以便从右侧获得所需的数字:
import pandas as pddata = https://www.lsbin.com/{'Identifier': [ 'IDAA-111','IDB-2222222','IDCCC-33']} df = pd.DataFrame(data, columns= [ 'Identifier']) after_symbol = df[ 'Identifier'].str.split('-').str[ 1]print (after_symbol)

这是 Python 的输出:
0111 12222222 233

场景 7:相同符号之间
Pandas如何使用LEFT、RIGHT?现在,如果要检索变长字符串的两个相同符号(例如破折号)之间的值,该怎么办:
Identifier
IDAA-111-AA
IDB-2222222-B
IDCCC-33-CCC
在这种情况下,设置:
  • str.split('-')
  • p [1]
因此,你的完整 Python 代码如下所示:
import pandas as pddata = https://www.lsbin.com/{'Identifier': [ 'IDAA-111-AA','IDB-2222222-B','IDCCC-33-CCC']} df = pd.DataFrame(data, columns= [ 'Identifier']) between_two_symbols = df[ 'Identifier'].str.split('-').str[ 1]print (between_two_symbols)

你将获得两个破折号之间的所有数字:
0111 12222222 233

场景 8:不同符号之间
Pandas应用LEFT、RIGHT、MID:对于最后一个场景,目标是获取两个不同符号(破折号和美元符号)之间的数字:
Identifier
IDAA-111 $ AA
IDB-2222222$B
IDCCC-33$CCC
为了实现这一目标:
  • 首先设置变量(即 between_two_different_symbols)获取破折号后的所有字符
  • 然后,设置相同的变量以获取美元符号之前的所有字符
这就是你编写代码的方式,Pandas使用LEFT、RIGHT、MID的示例:
import pandas as pddata = https://www.lsbin.com/{'Identifier': [ 'IDAA-111$AA','IDB-2222222$B','IDCCC-33$CCC']} df = pd.DataFrame(data, columns= [ 'Identifier']) between_two_different_symbols = df[ 'Identifier'].str.split('-').str[ 1] between_two_different_symbols = between_two_different_symbols.str.split('$').str[ 0]print (between_two_different_symbols)

结果:
0111 12222222 233

结论 – Pandas中的LEFT、RIGHT、MID你刚刚看到了如何在 Pandas中应用 Left、Right 和 Mid。本教程中回顾的概念可以应用于大量不同的场景。
你可以通过访问Pandas 文档找到许多有关处理文本数据的示例。

    推荐阅读