人工智能训练师三级备考考点
1、PANDAS进行数据清洗
例如:
import pandas as pd
df = pd.read_csv(“customer.csv”)
df.loc[(df[“age”] > 120) | (df[“age”]<0 ), “age”] = None
print(“After removing outliers:”)
print(df)
median = df[“age”].median()
print(median)
df[“age”] = df[“age”].fillna(median)
df[“age”] = df[“age”].astype(int)
df[“sex”] = df[“sex”].str.strip().str.lower().map(
{“m”: “男”, “male”: “男”, “f”: “女”, “female”: “女”, “男”: “男”, “女”: “女”}
).fillna(“未知”)
for i in range(len(df)):
if pd.isnull(df.loc[i,“city”]) or df.loc[i,“city”].strip() ==“”:
df.loc[i,“city”] = “未知”
else:
city = df.loc[i,“city”]
print(city)
df.loc[i,“city”] = city.strip()
print(df)
客户总数
print(“客户总数:”, len(df))
平均年龄
print(“平均年龄:”, df[“age”].mean())
#最大年龄
print(“最大年龄:”, df[“age”].max())
#最小年龄
print(“最小年龄:”, df[“age”].min())
#男性客户数量
dfnan = df.loc[df[“sex”] == “男”,[“sex”,“age”]]
print(dfnan)
print(“男性客户数量:”, df[df[“sex”] == “男”].shape[0])
#女性客户数量
print(“女性客户数量:”, df[df[“sex”] == “女”].shape[0])
#未知性别客户数量
print(“未知性别客户数量:”, df[df[“sex”] == “未知”].shape[0])
dfcity = df[“city”].value_counts()
print(“各城市客户数量:”)
print(dfcity)
for city, count in dfcity.items():
print(f"{city}: {count}")
#客户数量最多的城市
max_customers_city = dfcity.idxmax()
print(“客户数量最多的城市:”, max_customers_city)
df.to_csv(“customer_cleaned.csv”, index=False)
2、主要考点
1、idxmax
idxmax() 是 pandas 的方法,返回最大值对应的索引(index),而不是最大值本身。
例:
dfcity = df["city"].value_counts()
# 结果类似:
# 未知 2
# hangzhou 1
# nanjing 1
# beijing 1
# shanghai 1
dfcity.idxmax() # 返回 '未知'(数量 2 对应的城市名)
dfcity.max() # 返回 2(最大值本身)
对比一下:
| 方法 | 返回 |
|---|---|
max() | 最大值(2) |
idxmax() | 最大值的索引(‘未知’) |
argmax() | 最大值的位置(0,整数下标) |
所以 dfcity.idxmax() 就是"客户数量最多的城市"。
⚠️ 注意:如果有多个城市并列最多,idxmax() 只返回第一个出现的。
2, items 获取Serial 键名和值的获取
serial1 = pd.Serial({“hangzhou”:2,“nanjing”:1})
for city,count in serial1.items():
print(f"{city} : {count}")
注意:不能写成:
for city,count in serial1:
更多推荐
所有评论(0)