导入Pandas
import pandas as pd
读取数据
读取csv
food_info = pd.read_csv("food_info.csv")
基本用法
数据展示
展示头几行
food_info.head(3) #默认为5行
展示尾几行
food_info.tail(3) #默认为5行
列名称
food_info.columns
数据维度
food_info.shape #行数不包括表头
行列读取
取行数据
food_info.loc[0] #取第一行数据
food_info.loc[1:2] #取第2-3行数据
food_info.loc[[1,5]] #取第2、第6行数据
取列数据
food_info["NDB_No"] #取"NDB_No"列数据
food_info[["NDB_No","Shrt_Desc"]] #取"NDB_No"、"Shrt_Desc"列数据
找到以"(g)"结尾的列
col_names = food_info.columns.tolist() #将列名转换为list结构
gram_columns = []
for c in col_names:
if c.endswith("(g)"):
gram_columns.append(c)
gram_columns = food_info[gram_columns]
排序
food_info.sort_values("NDB_No", inplace=True, ascending=True)
inplace=True时改变原有dataframe数据顺序,False是生成新的dataframe,不改变原有结构
ascending=True升序,False为降序
多列排序
food_info.sort_values(["NDB_No", "Energ_Kcal"], inplace=False, ascending=False) #先以"NDB_No"列降序排序, 再以"Energ_Kcal"列降序排序
food_info.sort_values(["NDB_No", "Energ_Kcal"], inplace=False, ascending=[False, True]) #先以"NDB_No"列降序排序, 再以"Energ_Kcal"列升序排序
排序后重置index
food_info.sort_values("NDB_No", inplace=True, ascending=True).reset_index(drop=True)
缺失值查找
titanic_survival = pd.read_csv("titanic_train.csv")
age_is_null = pd.isnull(titanic_survival["Age"]) #判断"Age"列的各行数据是否为缺失值
age_null_true = titanic_survival.loc[age_is_null, "Age"] #返回缺失数据
print(len(age_null_true)) #打印缺失值个数
数据透视
#dataframe.pivot_table()类似excel数据透视表的概念
passenger_survival = titanic_survival.pivot_table(index="Pclass", values="Survived", aggfunc=np.mean)
print(passenger_survival)
Age
Pclass
1 38.233441
2 29.877630
3 25.140620
port_stats = titanic_survival.pivot_table(index="Embarked", values=["Fare", "Survived"], aggfunc=np.sum)
print(port_stats)
Fare Survived
Embarked
C 10072.2962 93
Q 1022.2543 30
S 17439.3988 217
port_stats = titanic_survival.pivot_table(index=["Embarked", "Pclass"], values=["Fare", "Survived"], aggfunc=np.sum)
print(port_stats)
Fare Survived
Embarked Pclass
C 1 8901.0750 59
2 431.0917 9
3 740.1295 25
Q 1 180.0000 1
2 37.0500 2
3 805.2043 27
S 1 8936.3375 74
2 3333.7000 76
3 5169.3613 67
数据预处理
titanic_survival.dropna(axis = 1) #删除有缺失值的列
titanic_survival.dropna(axis = 0) #删除有缺失值的行
titanic_survival.dropna(axis = 0, subset=["Age", "Cabin"]) #删除"Age"或"Cabin"列中有缺失值行