1.panads改变索引
import pandas as pd
t = pd.Series([1,1,2,4,12,56,32])
print(t)
#index 是前面的索引 将1-5改成a-e
t2 = pd.Series([1,1,12,56,32],index=list("abcde"))
print(t2)
t2.dtype #查看字符类型
t2.astype(float) #变动字符类型
2.读取数据--
1.输入pymongo
2.定义数据文件所在文件夹
from pymongo import MongoClient
df = pd.read_csv("F:/研究方向/6-软件操作/python/python-操作/12-人工智能阶段-数据分析/数据分析资料/day04/code/dogNames2.csv")
print(df)
3.dataframe的创立
import numpy as np
import pandas as pd
pd.DataFrame(np.arange(12).reshape(3,4)) #生成3行四列的数组
##index 设置数组的行序列 columns 设置数组的列序列
pd.DataFrame(np.arange(12).reshape(3,4),index=list("abd"),columns=list("wxyz"))
#字典
d1 ={'name':["xiaohong","xiaogang"],"age":[28,30],"tel":[10086,10010]}
pd.DataFrame(d1)
print(type(d1))
3.2基本属性
df.shape | 列数 |
df.dtypes | 列数据类型 |
df.ndim | 数据维度 |
df.index | 行索引 |
df.colums | 列索引 |
df.values | 对象之,二维ndarray数组 |
3.3整体查询
df.head() | 显示头部几行,默认5行 |
df.tail() | 显示末尾几行,默认5行 |
df.info() | 相关信息预览 |
df.describe() | 快速综合统计信息 |
4.dataframe索引和切片
print(df[:20]) # 取行
print(df["Row_Labels"]) # 取列 #Row_Labels是的列的序号名称
print(df[:20]["Row_Labels"]) ##取行列,位置不能更换
##由loc来进行索引处理数据
##由iloc来进行位置处理数据
import numpy as np
t3 = pd.DataFrame(np.arange(12).reshape(3,4),index = list("abc"),columns = list("wxyz"))
print(t3)
t3.loc["a","z"] # 在a行z列所在位置的数组
t3.loc[:,["w","z"]] #列出两列
t3.loc[["a","c"],:] #列出两行
t3.iloc[1,:]
5.数据的赋值,增删减
##赋值
t3.iloc[1:,:2] = np.nan
print(t3)
t3.iloc[1:,:2] = 10
#确实数据的处理
import pandas as pd
import numpy as np
t3 = pd.DataFrame(np.arange(12).reshape(3,4),index = list("abc"),columns = list("wxyz"))
print(t3)
t3.iloc[1:,:2] = np.nan
print(t3)
"""
1.判断是否有nan
2.删除
"""
pd.notnull(t3)
t3[pd.notnull(t3["w"])] #t3W列中不含nan的列
#删除行
t3.dropna(axis=0)
t3.dropna(axis=0,how="all") #删除全部为nan的行,不是就不删除.删除本身不会对t3产生变化
t3.dropna(axis=0,how="any") #删除有nan的行
t3.dropna(axis=0,how="all",inplace=True) #inplace原地替换t3
#填充
t3.fillna(100)
t3.fillna(t3.mean())
t3["y"].mean() #y列的均值
6.常用统计方法
df = pd.read_csv("数据文件所在位置")
print(df.info())
print(df.head(1))
#获取平均评分
print(df["Rating"].mean())
#导演的人数
print(len(set(df["Director"].tolist())))
#获取演员的人数
t5 =df["Actors"].str.split(",").tolist()
actors_list = [i for j in t5 for i in j]
np.array(t5).flatten()
actors_list =list(np.array(actors_list).flatten())
actors_list =len(set(actors_list))
print(actors_list)
# print(type(actors_list))
actors_num =len(set(actors_list))
print(actors_num)
#电影时长的最大最小值
max_runtime = df["Runtime(Minutes)"].max()
max_runtime_index = df["Runtime(Minutes)"].argmax()
min_runtime = df["Runtime(Minutes)"].min()
min_runtime_index = df["Runtime(Minutes)"].argmin()
runtime_median = df["Runtime(Minutes)"].median()