Python的一二三之 DataFrame

import numpy as np
import pandas as pd
from pandas import *
import random
import tensorflow as tf
import time

np.random.seed(2)

N_STATES=6
ACTIONS=['left','right']
EPSILON=0.9 #greedy police,90%选择最优的动作,0.1选择随机的动作
ALPHA=0.1 #learing rate 学习效率
LAMBDA=0.9 #discount factor 奖励衰减值
MAX_EPISODES=13 #maximum episodes只做13次
FRESH_TIME=0.1 #fresh time for one move走一步的时间

def build_q_table(n_states,action):
    table=pd.DataFrame(
        np.arange(12).reshape((n_states,len(action))),index=list('abcdef'),
        columns=action
    )
    return table
q_table=build_q_table(N_STATES,ACTIONS)
print(q_table)
'''DataFrame,返回的是行列有名称的表格格式,
第一个参数第一表格大小,
第二个参数index是行的名字,定义为index=['one','two']如果不定义,那么默认从0开始编号
index用{}放字符串顺序会乱,为列表[]则不会,也可以index=list('atknbf')每个字母为一行的名称
第三个参数为列的名称columns,columns={'right',left'}如果不定义,也有默认的值,列从0 开始编号'''

 

DataFrame的相关操作
操作语句输出结果返回类型
输出名为right的列(单列操作)
q_table['right']
a     1
b     3
c     5
d     7
e     9
f    11
Name: right, dtype: int32 
Series
q_table.right
 a     1
b     3
c     5
d     7
e     9
f    11
Name: right, dtype: int32 
Series
q_table[['right']]    right
a      1
b      3
c      5
d      7
e      9
f     11 
DataFrame
输出多个列,输出名字为right的列和名字为left的列q_table[['right','left']]     right  left
a      1     0
b      3     2
c      5     4
d      7     6
e      9     8
f     11    10 
DataFrame
取多行,取前3行
q_table[0:3]
     left  right
a     0      1
b     2      3
c     4      5 
DataFrame
q_table['a':'c']
    left  right
a     0      1
b     2      3
c     4      5 
DataFrame
取某一行,取第3行
q_table.iloc[2]
 left     10
right    11
Name: f, dtype: int32
Series
q_table.iloc[2:3]     left  right
c     4      5 
DataFrame
取首行
q_table.head(1)
      left  right
a     0      1
DataFrame
q_table.head()      left  right
a     0      1
b     2      3
c     4      5
d     6      7
e     8      9 
DataFrame,返回默认前五行
取尾行
q_table.tail()
     left  right
b     2      3
c     4      5
d     6      7
e     8      9
f    10     11
DataFrame,返回默认前五行
q_table.tail(1)     left  right
f    10     11
DataFrame
取某行某列
q_table.loc['a',['left']]
left    0
Name: a, dtype: int32 
Series
q_table.iat[1,1]
3 <class 'numpy.int32'>

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值