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的DateFrame来给他操作一下;

new_stock_day_rise = pd.DateFrame(stock_day_rise)

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

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 表示有缺失值的出现, 数据展示的有点不完美; 还是我的方式有问题呢, 请大佬赐教:

6.实现行和列的转换

data.T

 

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

9. 重设索引, 调用下面这个方法我们可以看到在原来垂直索引的基础上又多了一个行索引

data.reset_index()

 可以看到显示是有两个索引, 我们可以通过

# 删除index 的垂直索引
data.reset_index(drop=True)

10. 通过dateFrame传递字典信息, 将字典的Key自动变成我们的列索引, 自动在给我们添加行索引

df = pd.DataFrame({'month': [12, 3, 6, 9],
                   'year': [2017, 2018, 2018, 2018],
                   'sale': [1000, 3546, 4568, 9876],
})

我们也可以将我们的month 或者 year 设置为我们的行索引

df.set_index('month')

11. 设置多个索引

ret_df = df.set_index(['year', 'month'])

 

我们使用index查看一下他现在是一个复合索引:

ret_df.index

12. Series 常见的一些属性

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值