python切片练习(League of Legends)

python切片的练习

League of Legends
League of Legends.xls
题目:1 将表格信息读取出来,并将蓝色精粹字段的值进行分区间调整

2 读取数据时只将字段英雄名称和英雄称号读取出来

3 读取数据时只提取"虚空遁地兽"和"暗裔剑魔"这两个称号所在行及其中间行的全部内容

读取全部数据后用切片的方式完成4-9操作

4 把从"熔铁少女"所在行开始至"魔法猫咪"所在行结束及其之间的内容展示出来

5 把加入时间所在列的内容展示出来

6 把英雄名称和蓝色精粹所在列的内容展示出来

7 把英雄称号所在列及其之后的列的内容展示出来

8 把蓝色精粹之前的列的内容展示出来

9 把腕豪、血港鬼影和它们两个各自对应的蓝色精粹列中的值,共同合围起来的区域显示出来

10 把每年12月加入的英雄人物及其全部属性提取出来。

11 把其中提取出来的结果存档至新的文件。
在构建ndarray数组、存档文本文件、从文本文件中提取内容

import  numpy as np
onearray=np.loadtxt('League of Legends.csv',dtype=str,delimiter=',',skiprows=1)
twoarray=onearray[::,-1:-2:-1].flatten()
# emptylist=[]
# for i in range(len(twoarray)):
#     temp=eval(twoarray[i])
#     if temp % 6==0 and temp % 8!=0:
#         print(onearray[i:i+1:,::])


# emptylist=[]
# for i in range(len(twoarray)):
#     if '年' in twoarray[i] and '月' in twoarray[i]:
#         temp=twoarray[i]
#         if  temp[twoarray[i].index('年')+1:twoarray[i].index('月')] == '12':
#     # print(temp)
#           emptylist.append(onearray[i:i+1,::])
# print(emptylist)
# print(twoarray)
# print(onearray[i:i+1:,::])

#第二部分
# flag=True
# for i in range(len(twoarray)):
#     temp=twoarray[i]
#     if '年12月' in temp:
#
#       if flag == True:
#         record=onearray[i]
#         flag=False
#       else:
#         record=np.vstack((record,onearray[i]))
# print(record)

#第三部分
emptydic={}
emptylist=[]
for i in range(len(twoarray)):
    temp=twoarray[i]
    month=temp[temp.index('年')+1:temp.index('月')]
    if month in emptydic.keys():               #emptydic.keys()      i是月份 ,键名
       emptydic[month]=np.vstack((emptydic[month],onearray[i]))
    else:
         emptydic[month]=onearray[i]    #?

def sortvalue(value): # list sort
    return  int(value[0])
for i in emptydic.keys():
    temp=emptydic[i]
    emptydic[i]=temp[::-1,::]
    emptylist.append((i,emptydic[i]))   #emptydic[i]  i是月份 ,键名
for i in emptylist:
    emptylist.sort(key=sortvalue,reverse=False)

print(emptydic[month])

2.使用DataFrame,切片操作,对Excel表进行处理

以章节2.7中数据存取练习中的附件Excel中的数据作为原始数据集,在去除首行表头和首列内容后,将英雄称号列中的内容分别设置成英雄名称、点券价格、蓝色精粹、加入时间所在列内容的索引。提交Python原码文件

	import  pandas as pd
import  numpy as np
onedic={}
onearray=np.loadtxt('League of Legends.csv',dtype=str,delimiter=',')
# print(onearray)
twoarray=onearray[1::,-1::].flatten()
# [['序号' '英雄称号' '英雄名称' '点券价格' '蓝色精萃' '加入时间']]
# twoarray=onearray[:1:,::]
# print(twoarray)
# i从0开始
for i in range(len(twoarray)):
    temp=twoarray[i]
    month=temp[temp.index('年')+1:temp.index('月')]
    ''' month in onedic.keys() month为键值'''
    if month in onedic.keys():
        onedic[month]=np.vstack((onedic[month],onearray[i+1:i+2,::]))
    else:
    # 除标头,从第一行开始
        onedic[month]=onearray[i+1:i+2,::]
    # dict_keys(['2', '1', '9', '7', '4', '12', '10', '8', '11', '6', '5', '3'])
# print(onedic.keys())
# print(onedic)
emptylist=[]
for i in onedic.keys():
    emptylist.append([i,onedic[i]])     #append() 元组
# print(emptylist[0][1])
# print(emptylist[0][1].transpose((1,0)))
# threearray=emptylist[0][1].transpose((1,0))
# fourarray=threearray[1::,::][::-1,::]
# fivearray = fourarray[1::, ::]
# print(fivearray)

# fourarray=threearray[1::,::][::-1,::]
for i in emptylist:
    temp=i
    tupleitem=temp[1]
# print(emptylist[0][1])
# print(emptylist[0][1].transpose((1,0)))
threearray=tupleitem.transpose((1,0))
# print(threearray)
fourarray=threearray[1::,::][::-1,::]
column=fourarray[:1:,::].flatten()
index=onearray[:1:,-2:-6:-1].flatten()
fivearray=fourarray[1::,::]
oneframe = pd.DataFrame(fivearray, index=index, columns=column)
print('---------------------------')
print(oneframe)

# print(onedic)
# oneframe=pd.DataFrame(onearray[1::],index=range(159,0,-1),columns=onearray[:1:,::].flatten())
# print(oneframe)
	```
	
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值