在 Pandas 中,str 访问器用于对 Series 或 DataFrame 中的字符串 数据进行矢量化 操作,使其能够像 Python 的字符串方法一样被调用,但支持对整个列或 Series 进行高效处理。
str 只能用于包含字符串类型的 Series 或 DataFrame 的 string 类型列。如果列的类型不是字符串,需要先转换:
python
df['A'] = df['A'].astype(str)
然后,就可以使用 .str 进行字符串操作。
df['A'].str.upper()等df['A'].str.startswitch('a')等
Pandas 的 .str 访问器不会在字符串操作后自动保持 Series 类型 ,而是可能返回 普通 Python 对象 (如 str)。如果不在每次字符串操作前显式使用 .str 访问器,就会导致后续的方法调用失败。
例如,users["name"].str[1:].str.lower() 是正确的,而 users["name"].str[1:].lower() 则不正确,因为它缺少.lower()方法之前的第二个 .str 访问器。
编写解决方案,修复名字,使得只有第一个字符是大写的,其余都是小写的。
python
import pandas as pd
def fix_names(users: pd.DataFrame) -> pd.DataFrame:
users['name'] = users['name'].str[0].str.upper() + users['name'].str[1:].str.lower()
return users.sort_values(by='user_id')