📜  在 Pandas-Python 中获取列的子字符串(1)

📅  最后修改于: 2023-12-03 15:23:14.893000             🧑  作者: Mango

在 Pandas-Python 中获取列的子字符串

Pandas 是 Python 中用于数据处理和分析的强大工具。在 Pandas 中,经常需要对数据中的列进行操作,而获取列的子字符串则是其中重要的一项。

使用 .str 方法

Pandas 中的列数据类型为 Series,获取列的子字符串可以使用 Series 的 .str 方法。下面是一个简单的例子:

import pandas as pd

data = {"name": ["Alice", "Bob", "Charlie"], "age": [25, 30, 35], "email": ["alice@example.com", "bob@example.com", "charlie@example.com"]}
df = pd.DataFrame(data)

print(df["email"].str[:5])

上述代码中,我们定义了一个数据帧 df,其中 email 列包含了邮箱地址。使用 .str 方法,我们可以获取 email 列的前五个字符。

输出结果如下:

0    alice
1      bob
2    charl
Name: email, dtype: object
使用正则表达式

除了 .str 方法,还可以使用正则表达式来获取列的子字符串。下面是一个例子:

import pandas as pd

data = {"name": ["Alice", "Bob", "Charlie"], "age": [25, 30, 35], "email": ["alice@example.com", "bob@example.com", "charlie@example.com"]}

df = pd.DataFrame(data)

df["username"] = df["email"].str.extract(r"(.*?)@")

print(df)

上述代码中,我们使用了 .str.extract 方法和正则表达式,以提取邮箱地址中的用户名。

输出结果如下:

      name  age              email username
0    Alice   25  alice@example.com    alice
1      Bob   30    bob@example.com      bob
2  Charlie   35  charlie@example.com  charlie
结论

Pandas 提供了多种方法来获取列的子字符串,包括字符串截取和正则表达式。这些方法在数据分析和处理中非常常见,建议掌握好这些技巧。