目录
五.pandas常见操作
1.pandas处理字符串
以上演示
1-大小写转换
2-去空格(两边) .str.strip()
3-切割
4-连接 .str.cat()
5-空格检测 .str.contains(" ")
6-替换
7-count()--返回元素出现次数
8-repeat()
2.查询操作
2.1 query(" ")
2.2 isin()
2.3 apply()
3.缺失值处理
演示代码
3.1 dropna()
3.2 fillna()
五.pandas常见操作
1.pandas处理字符串
Pandas 提供了一系列的字符串函数,因此能够很方便地对字符串进行处理。
| 函数名称 | 函数功能和描述 |
|---|---|
| lower() | 将的字符串转换为小写。 |
| upper() | 将的字符串转换为大写。 |
| len() | 得出字符串的长度。 |
| strip() | 去除字符串两边的空格(包含换行符)。 |
| split() | 用指定的分割符分割字符串。 |
| cat(sep="") | 用给定的分隔符连接字符串元素。 |
| contains(pattern) | 如果空子字串包含在元素中,则为每个元素返回一个布尔值 True,否则为 False。 |
| replace(a,b) | 将值 a 替换为值 b。 |
| count(pattern) | 返回每个字符串元素出现的次数。 |
| findall(pattern) | 以列表的形式返出现的字符串。 |
| isnumeric() | 返回布尔值,检查 Series 中组成每个字符串的所有字符是否都为数字。 |
| repeat(value) | 以指定的次数重复每个元素。 |
| find(pattern) | 返回字符串第一次出现的索引位置. |
以上演示
1-大小写转换
import pandas as pd
a=pd.DataFrame({"name":['cao','WC','bibi'],"age":[10,20,30]})
print(a)
# 将name列的小写转换为大写.
a['name'].str.upper()

2-去空格(两边) .str.strip()

3-切割

4-连接 .str.cat()

5-空格检测 .str.contains(" ")

6-替换

7-count()--返回元素出现次数
a['name'].str.count('i')
8-repeat()

2.查询操作
2.1 query(" ")
df_data = pd.DataFrame(
{"demo":["python","java","php","javascript"],
"A":[10,11,11,12],
"B":[8,15,11,13],
"C":[12,12,14,15],
"D":[11,13,15,11],
})
print(df_data)
# 按条件筛选
# df_data.query("(A>10) and (B>12)")
# 筛选指定列
# df_data.query("(A>10) & (B>12)")[["demo","C","D"]]
# 筛选某一列
# df_data[df_data["demo"] == "python"]
# df_data.query('demo == "python"')

2.2 isin()

2.3 apply()
apply 函数是 pandas 库中 DataFrame 和 Series 对象的一个方法,它允许你对这些对象中的数据应用一个函数。
df_data = pd.DataFrame({
'A': [1, 2, 3],
'B': [4.000023, 5.000021, 6.000054],
'C': [7, 8, 9]
})
df_data
# 对每一列进行求和操作
df_data.apply(lambda x:x.sum(),axis="index")
# 对每一行进行求和操作
df_data.apply(lambda x:x.sum(),axis="columns")
df_data.apply(lambda x:x.sum()-x.max(),axis="index")
#mean()求均值---对每一列求均值。
df_data.apply(lambda x:x.mean(),axis="index")
# map关系映射
# B列保留两位小数
df_data["B"].map(lambda x:"%.2f"%x)
3.缺失值处理
演示代码
df_data = pd.DataFrame({
"姓名":["张三","李四","王五","赵六"],
"性别":["男",np.nan,"男","男"],
"身高":[180,175,178,np.nan],
},index=[1,3,5,6])
df = df_data.reindex([1,2,3,4,5,6])
3.1 dropna()
DataFrame.dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
-
axis:默认为0,表示删除行还是列,也可以用“index”和“columns”表示
-
how:{‘any’, ‘all’}, 默认为 ‘any’;any表示只要该行(列)出现空值就删除整行(列),all表示整行(列)都出现空值才会删除整行(列)
-
thresh:表示删除非空值小于thresh个数时删除
-
subset:列表类型,表示哪些列里有空值才删除行或列
# 检查缺失值 df.isnull() # 检查某列缺失值 df["姓名"].isnull() # 删除缺失值 df.dropna(thresh=2) # 全部为空时删除 df.dropna(axis="index",how="all") # 指定列进行空值删除 df.dropna(subset=["身高"])
3.2 fillna()
fillna()的作用是填充缺失值。
# 常量填充缺失值 df.fillna(0) # 计算填充 df["身高"].fillna(df["身高"].mean())


















