pandas 匹配列字符,替换数据
时间: 2023-10-17 21:02:37 浏览: 100
使用 pandas 的 replace() 函数可以将指定列中的某些字符串替换为其他字符串。示例代码如下:
```python
import pandas as pd
# 创建示例数据
data = {'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35], 'gender': ['female', 'male', 'male']}
df = pd.DataFrame(data)
# 将 gender 列中的 'male' 替换为 'M','female' 替换为 'F'
df['gender'] = df['gender'].replace({'male': 'M', 'female': 'F'})
print(df)
```
输出结果:
```
name age gender
0 Alice 25 F
1 Bob 30 M
2 Charlie 35 M
```
在上面的示例代码中,我们使用 replace() 函数将 gender 列中的 'male' 替换为 'M','female' 替换为 'F'。我们可以通过传递一个字典作为参数来实现这一功能。字典的键是要替换的字符串,值是要替换成的字符串。
相关问题
pandas 字符替换
在Pandas库中,你可以使用`str.replace()`函数来进行字符替换操作。这个函数主要用于替换DataFrame或Series中的字符串内容。它的基本语法如下:
```python
df['column_name'].replace(old_value, new_value, regex=True|False, inplace=False)
```
- `old_value`:需要被替换的原始值,可以是一个字符串、列表、正则表达式等。
- `new_value`:替换后的值,也可以是一个字符串或列表。
- `regex`:默认为`False`,如果设置为`True`,则认为`old_value`是一个正则表达式模式。
- `inplace`:默认为`False`,如果设为`True`,则会直接修改原 DataFrame,而不是返回新的 Series 或 DataFrame。
例如,如果你有一个名为'data'的列,想把所有的逗号替换成分号:
```python
data['column_name'] = data['column_name'].replace(',', ';')
```
或者,如果你想替换满足某个正则表达式的所有匹配项,可以这样做:
```python
data['column_name'] = data['column_name'].replace(r'\babc\b', 'xyz', regex=True)
```
这里 `\babc\b` 是一个正则表达式,它匹配的是整个单词"abc"。
pandas 替换 部分字符串
你可以使用 `pandas` 中的 `str.replace()` 方法来替换部分字符串。以下是一个例子:
假设你有一个名为 `df` 的 `pandas` 数据帧,其中包含一个名为 `column_name` 的列,你想要将该列中的所有以 `old_string` 开头的字符串替换为 `new_string`,你可以使用以下代码:
```python
df['column_name'] = df['column_name'].str.replace('^old_string', 'new_string', regex=True)
```
这里的 `^` 符号表示只替换以 `old_string` 开头的字符串。如果你想替换包含 `old_string` 的所有字符串(而不仅仅是开头的字符串),可以省略 `^` 符号。
你也可以使用正则表达式来匹配更复杂的模式,例如:
```python
df['column_name'] = df['column_name'].str.replace('old_string1|old_string2', 'new_string', regex=True)
```
这将替换所有以 `old_string1` 或 `old_string2` 开头的字符串为 `new_string`。
阅读全文