數據挖掘工具pandas(五)DataFrame的常用統計方法

一,單個函數

max、min、idxmin、idxmax、mean、std

import pandas as pd
import numpy as np

day_data = np.random.normal(0,1,(500,507))
stock_list = ["股票"+ str(i) for i in range(day_data.shape[0])]
date = ["第"+ str(i)+"天" for i in range(day_data.shape[1])]
df = pd.DataFrame(day_data,index=stock_list,columns=date)

# 1,max()、min() 使用max()求出最大值、最小值
# 求出某個指定列(字段)的最大值、最小值
# print(df["第0天"].max())
# 求出所有行的的最大值、最小值
# print(df.max(1))
# 求出所有列的的最大值、最小值
# print(df.min(0))

# 2,idxmax()、idxmin() 求出最大值的索引位置、最小值的索引位置
# 求出某個指定列(字段)的最大值的索引位置、最小值的索引位置
# print(df["第0天"].idxmax())
# 求出左右行的的最大值的索引位置、最小值的索引位置
# print(df.idxmax(1))
# 求出左右列的的最大值的索引位置、最小值的索引位置
# print(df.idxmin(0))

# 3,mean() 求出平均值
# 獲得一維數組平均值
# print(df['第0天'].mean())
# 獲得所有列的平均值
# print(df.mean())
# 獲得所有行的平均值
# print(df.mean(1))

# 4,std() 求出標準差
# 獲得某一列的標準差
# print(df['第0天'].std())、
# 獲得所有列的標準差
# print(df.std())
# 獲得所有行的標準差
# print(df.std(1))

在這裏插入圖片描述

二,累計統計分析函數

cumsum、cummax、cummin、cumprod

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt

day_data = np.random.normal(0,1,(500,507))
stock_list = ["股票"+ str(i) for i in range(day_data.shape[0])]
date = ["第"+ str(i)+"天" for i in range(day_data.shape[1])]
df = pd.DataFrame(day_data,index=stock_list,columns=date)

# 1,cumsum()計算每列所有行的累計和
# print(df.cumsum(0))
# 計算每行所有列的累計和
# print(df.cumsum(1))

# 2,cummax()計算每列所有行的累計最大值
# print(df.第1天.cummax())

# 3,cummin()計算每列所有行的累計最小值
# print(df.第1天.cummin())

# 4,cumprod()計算每列所有行的累計乘積
# print(df.第1天.cumprod())

# 5,使用numpy和matplotlib.pyplot繪製圖形
# 集成了直方圖、條形圖、餅圖、折線圖
df.1.cumsum().plot()
plt.show()

在這裏插入圖片描述
在這裏插入圖片描述

三,dataframe數據去重

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt

day_data = np.random.normal(0,1,(500,507))
stock_list = ["股票"+ str(i) for i in range(day_data.shape[0])]
date = ["第"+ str(i)+"天" for i in range(day_data.shape[1])]
df = pd.DataFrame(day_data,index=stock_list,columns=date)

# 獲得一維數組絕對不重複個數(第一種方法)
# print(len(set(df['第1天'].tolist())))

# 獲得一維數組絕對不重複個數(第二種方法)
print(len(df.1.unique()))

四,返回index的唯一值

df.set_index(“country”).index.unique()

import numpy as np
import pandas as pd

day_data = np.random.normal(0,1,(500,507))
day_data1 = pd.DataFrame(day_data)
stock_list = ["股票"+ str(i) for i in range(day_data.shape[0])]
date = ["第"+ str(i)+"天" for i in range(day_data.shape[1])]
day_data1 = pd.DataFrame(day_data,index=stock_list,columns=date)

# 返回index的唯一值
# day_data1 = len(day_data1.set_index("第0天").index.unique())

# 返回dataframe任意一列數據的唯一值
# day_data1 = len(day_data1.第0天.unique())

# 返回dataframe數據的唯一值
day_data1 = len(np.unique(np.array(day_data1)))
print(day_data1)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章