pandas 匹配列字符,替换数据
时间: 2023-10-17 14:02:37 浏览: 53
使用 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()` 方法来替换部分字符串。以下是一个例子:
假设你有一个名为 `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`。
python pandas 列转字符串换为数字
你可以使用 pandas.Series.str.replace() 函数将字符串中的特定字符替换为空格,然后使用 pandas.Series.astype() 函数将列转换为数字类型。示例代码如下:
```python
import pandas as pd
# 创建一个示例 DataFrame
df = pd.DataFrame({'A': ['1', '2', '3'], 'B': ['4', '5', '6']})
# 将列 A 和 B 中的字符串替换为空格
df['A'] = df['A'].str.replace(r'\D', '').astype(int)
df['B'] = df['B'].str.replace(r'\D', '').astype(int)
print(df)
```
输出结果:
```
A B
0 1 4
1 2 5
2 3 6
```
在上面的示例代码中,`r'\D'` 是一个正则表达式,表示匹配任何非数字字符。`str.replace()` 函数将 A 和 B 列中的非数字字符替换为空格,然后使用 `astype()` 函数将列转换为整数类型。