📜  字符串浮动 python pandas - Python (1)

📅  最后修改于: 2023-12-03 14:53:26.955000             🧑  作者: Mango

字符串浮动 Python Pandas

简介

在Python Pandas中,字符串浮动指的是在DataFrame中对字符串列进行操作时,在保持列内字符串不变的情况下,对所有字符串添加/删除/修改某些字符或字符串。

方法

Pandas中提供了多种处理字符串浮动的方法,主要包括以下几种:

1. str.replace()

功能:替换指定子字符串

# 替换一个子字符串
df['col'].str.replace('old', 'new')

# 替换多个子字符串
df['col'].str.replace('old1', 'new1').str.replace('old2', 'new2')
2. str.cat()

功能:连接字符串

# 连接两个列
df['new_col'] = df['col1'].str.cat(df['col2'], sep='-')

# 连接指定列的多个字符串
df['new_col'] = df[['col1', 'col2', 'col3']].apply(lambda x: '-'.join(x), axis=1)
3. str.strip()

功能:去除字符串两端指定字符

# 去除左右两端的空格
df['col'].str.strip()

# 去除左右两端的指定字符
df['col'].str.strip('str')
4. str.split()

功能:按指定字符切分字符串

# 按空格切分字符串
df['col'].str.split()

# 按指定字符切分字符串
df['col'].str.split('-')
例子
# 导入模块
import pandas as pd

# 创建测试数据
data = {'name': ['Tom', 'Jerry', 'Tony'], 'age': [20, 18, 22]}
df = pd.DataFrame(data)

# 添加一列
df['phone'] = pd.Series(['15612345678', '13987654321', '15888888888'])

# 用replace方法替换指定数字
df['phone'] = df['phone'].str.replace('8', '0')

# 用cat方法连接两列
df['name_age'] = df['name'].str.cat(df['age'].astype(str), sep='_')

# 用strip方法去除两端的数字
df['name'] = df['name_age'].str.strip('0123456789_')

# 用split方法根据_切分字符串
df['age'] = df['name_age'].str.split('_').str[1].astype(int)

# 输出结果
print(df)

输出结果:

| | name | age | phone | name_age | |---:|:-------|:------|:-------------|:-----------| | 0 | Tom | 20 | 15612345670 | Tom_20 | | 1 | Jerry | 18 | 13907054321 | Jerry_18 | | 2 | Tony | 22 | 15000000000 | Tony_22 |