在 Pandas缺失值处理 | 轻松玩转Pandas(3) 介绍了 Pandas 中缺失值的处理,这一节我们来看一看如何处理 Pandas 中的文本(字符串)。
# 导入相关库
import numpy as np
import pandas as pd
Python
文章目录 [展示]
为什么要用str属性
文本数据也就是我们常说的字符串,Pandas 为 Series 提供了 str 属性,通过它可以方便的对每个元素进行操作。
index = pd.Index(data=["Tom", "Bob", "Mary", "James", "Andy", "Alice"], name="name")
data = {
"age": [18, 30, np.nan, 40, np.nan, 30],
"city": ["Bei Jing ", "Shang Hai ", "Guang Zhou", "Shen Zhen", np.nan, " "],
"sex": [None, "male", "female", "male", np.nan, "unknown"],
"birth": ["2000-02-10", "1988-10-17", None, "1978-08-08", np.nan, "1988-10-17"]
}
user_info = pd.DataFrame(data=data, index=index)
# 将出生日期转为时间戳
user_info["birth"] = pd.to_datetime(user_info.birth)
user_info
Python
age
birth
city
sex
name
Tom
18.0
2000-02-10
Bei Jing
None
Bob
30.0
1988-10-17
Shang Hai
male
Mary
NaN
NaT
Guang Zhou
female
James
40.0
1978-08-08
Shen Zhen
male
Andy
NaN
NaT
NaN
NaN
Alice
30.0
1988-10-17
unknown
在之前已经了解过,在对 Series 中每个元素处理时,我们可以使用 map 或 apply 方法。
比如,我想要将每个城市都转为小写,可以使用如下的方式。
user_info.city.map(lambda x: x.lower())
Python
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
in ()
----> 1 user_info.city.map(lambda x: x.lower())
C:\soft\py3\lib\site-packages\pandas\core\series.py in map(self, arg, na_action)
2156 else:
2157 # arg is a function
-> 2158 new_values = m