dataframe 某列字段 截取符号‘-’之后所df['col1'] = df['col1'].str.split('-', n=1).str[1]有的字符
时间: 2023-10-09 18:14:58 浏览: 45
如果你想要在截取符号 '-' 之后,只保留某些特定字符,可以使用正则表达式来进行匹配。例如,假设你只想保留以大写字母开头的单词,可以使用以下代码:
```
import re
df['col1'] = df['col1'].str.split('-', n=1).str[1]
df['col1'] = df['col1'].str.extract(r'\b([A-Z]\w*)\b', expand=False)
```
这里的正则表达式 `\b([A-Z]\w*)\b` 匹配一个以大写字母开头的单词,`\b` 表示单词边界,`[A-Z]` 表示大写字母,`\w*` 表示零个或多个单词字符。`expand=False` 表示返回一个 Series,而不是一个 DataFrame。
相关问题
dataframe 某列字段 截取符号‘-’之后所有的字符
假设你的 DataFrame 中有一列名为 `column_name`,其中的值包含了符号 `'-'`,你可以使用 `.str.split()` 方法将其拆分成一个列表,然后使用索引 `[1]`(即第二个元素)获取符号 `'-'` 之后的所有字符。具体代码如下:
```
df['new_column'] = df['column_name'].str.split('-').str[1]
```
其中,`'new_column'` 是你想要添加的新列的名称,你可以自定义。
dataframe 某列字段 截取第一次出现符号‘-’之后所有的字符
假设你使用 pandas 库来处理 DataFrame,可以使用 `str` 对象的 `split()` 和 `get()` 方法来实现:
```python
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({'col1': ['abc-def-ghi', 'jkl-mno-pqr', 'stu-vwx-yz']})
# 按照 '-'符号分割字符串,并获取第二个分割后的字符串
df['col2'] = df['col1'].str.split('-').str.get(1).str[1:]
print(df)
```
输出结果:
```
col1 col2
0 abc-def-ghi def
1 jkl-mno-pqr mno
2 stu-vwx-yz vwx
```
代码解释:
1. 首先创建了一个示例 DataFrame,其中包含了一个 `col1` 列,每个单元格中都包含了一个由 '-' 分割的字符串。
2. 使用 `str` 对象的 `split()` 方法,将每个单元格中的字符串按照 '-' 分割成一个列表。
3. 使用 `str` 对象的 `get()` 方法获取分割后的列表中的第二个元素(即第一次出现的 '-' 符号之后的字符串)。
4. 最后使用字符串切片的方式去掉该字符串的第一个字符,即 '-' 符号。
阅读全文