pandas中DataFrame的基本用法

1.pandas的DateFrame的用法:

环境为:python3 + linux + jupyter-notebook

import numpy as np
import pandas as pd

# 使用numpy 生成一个今天我们要练习的数据
# 他是符合正太分布的8支股票5天的涨跌幅数据

stock_day_rise = np.random.normal(0, 1, (10, 5))

2.  # 我们打印stock_day_rise的结果是下面这样一组数据:

pandas中DataFrame的基本用法

对于这样的数据展示给用户的效果不太直观, 我们使用pandas的DateFrame来给他操作一下;

new_stock_day_rise = pd.DateFrame(stock_day_rise)

# 得到的结果如下,可以看到这个数据比以前多了一个行列的索引:

pandas中DataFrame的基本用法

3.我们将每一只股票给他单独进行命名:

思路: 使用numpy 的shape方法能够得到他的矩阵的长度

new_stock_day_rise.shape
# 结果为: (8, 5)  股票的名字现在为0,....8 所以我们取他的0下标的值, 进行遍历 将遍历的结果用字符串的方式拼接为股票的新的名字;
stock_code = ['股票' + str(i) for i in range(new_stock_day_rise.shape[0])]

 4.将股票的天数也给它命名下 股票的日期是一个时间的序列,我们要实现从前往后的时间还要考虑每月的总天数等,不方便。使用pd.date_range() 这个方法他是用来生成一个连续的时间序列

# 生成一个时间的序列,略过周末非交易日
date = pd.date_range('2018-10-24', periods=stock_day_rise.shape[1], freq='B')

5.重新展示我们的数据

# index代表行索引,columns代表列索引
data = pd.DataFrame(stock_day_rise, index=stock_code, columns=date)

# 展示结果如下,Nan 表示有缺失值的出现, 数据展示的有点不完美; 还是我的方式有问题呢, 请大佬赐教:

pandas中DataFrame的基本用法

6.实现行和列的转换

data.T

 pandas中DataFrame的基本用法

7.其他用法

# 打印他的行索引
>>>data.index

Index(['股票0', '股票1', '股票2', '股票3', '股票4', '股票5', '股票6', '股票7'], dtype='object')

# 列索引
>>>data.columns

DatetimeIndex(['2018-10-24', '2018-10-25', '2018-10-26', '2018-10-29',
               '2018-10-30'],
              dtype='datetime64[ns]', freq='B')

# 直接获取其中array的值
data.values

# 显示前五支股票的数据   如果不补充参数,默认5行。填入参数N则显示后N行
data.head(5)

# 显示后五支股票的数据  如果不补充参数,默认5行。填入参数N则显示后N行
data.tail(5)

8. 修改行列索引的名字 

stock_code = ["股票_" + str(i) for i in range(stock_day_rise.shape[0])]

# 必须整体全部修改
data.index = stock_code

......