目录
1.(1)读取以下4位同学的成绩并用一个数据框变量pd保存,其中成绩保存在一个TXT文件中,如图所示。
(2)对数据框变量pd进行切片操作,分别获得小红、张明、小江、小李的各科成绩,它们是4个数据框变量,分别记为pd1、pd2、pd3、pd4。
(3)利用数据框中自身的聚合计算方法,计算并获得每个同学各科成绩的平均分,记为M1、M2、M3、M4。
2.(1)读取以下Excel表格的数据并用一个数据框变量df保存,数据内容如下所示。
(2)对df第3列、第4列进行切片,切片后得到一个新的数据框记为df1,并对df1利用自身的方法转换为Numpy数组Nt。
(3)基于df第2列,构造一个逻辑数组TF,即满足交易日期小于等于2017-01-16且大于等于2017-01-05为真,否则为假。
(4)以逻辑数组TF为索引,取数组Nt中的第2列交易量数据并求和,记为S。
文件下载链接https://pan.baidu.com/s/1kNJ6Vwo5kat52tO7ttDHmA?pwd=sh6r
In:import pandas as pd
import numpy as np
pd=pd.read_table('test1.txt',sep=',')
pd
Out: 姓名 科目 成绩
0 小红 语文 100
1 小红 英语 90
2 小红 数学 75
3 张明 语文 80
4 张明 英语 76
5 张明 数学 88
6 小江 语文 79
7 小江 数学 120
8 小江 英语 80
9 小李 英语 87
10 小李 语文 99
11 小李 数学 76
In:pd1=pd.iloc[0:3]
pd1
Out: 姓名 科目 成绩
0 小红 语文 100
1 小红 英语 90
2 小红 数学 75
In:pd2=pd.iloc[3:6]
pd2
Out: 姓名 科目 成绩
3 张明 语文 80
4 张明 英语 76
5 张明 数学 88
In:pd3=pd.iloc[6:9]
pd3
Out: 姓名 科目 成绩
6 小江 语文 79
7 小江 数学 120
8 小江 英语 80
In:pd4=pd.iloc[9:12]
pd4
Out: 姓名 科目 成绩
9 小李 英语 87
10 小李 语文 99
11 小李 数学 76
In:M1=pd1.mean()
M1
Out:成绩 88.333333
dtype: float64
In:M2=pd2.mean()
M3=pd3.mean()
M4=pd4.mean()
In:M2
Out:成绩 81.333333
dtype: float64
In:M3
Out:成绩 93.0
dtype: float64
In:M4
Out:成绩 87.333333
dtype: float64
文件下载链接https://pan.baidu.com/s/1F59EdzN3X9BQCN53N5R_xw?pwd=73rm
In:df=pd.read_excel('test2.xlsx')
df
Out:
股票代码 交易日期 收盘价 交易量
0 600000 2017-01-03 16.30 16237125
1 600000 2017-01-04 16.33 29658734
2 600000 2017-01-05 16.30 26437646
3 600000 2017-01-06 16.18 17195598
4 600000 2017-01-09 16.20 14908745
5 600000 2017-01-10 16.19 7996756
6 600000 2017-01-11 16.16 9193332
7 600000 2017-01-12 16.12 8296150
8 600000 2017-01-13 16.27 19034143
9 600000 2017-01-16 16.56 53304724
10 600000 2017-01-17 16.40 12555292
11 600000 2017-01-18 16.48 11478663
12 600000 2017-01-19 16.54 12180687
13 600000 2017-01-20 16.60 14288268
In:df1=df.iloc[[0,1,2,3,4,5,6,7,8,9,10,11,12,13],[2,3]]
df1
Out:
收盘价 交易量
0 16.30 16237125
1 16.33 29658734
2 16.30 26437646
3 16.18 17195598
4 16.20 14908745
5 16.19 7996756
6 16.16 9193332
7 16.12 8296150
8 16.27 19034143
9 16.56 53304724
10 16.40 12555292
11 16.48 11478663
12 16.54 12180687
13 16.60 14288268
In:Nt=np.array(df1)
Nt
Out:
array([[1.6300000e+01, 1.6237125e+07],
[1.6330000e+01, 2.9658734e+07],
[1.6300000e+01, 2.6437646e+07],
[1.6180000e+01, 1.7195598e+07],
[1.6200000e+01, 1.4908745e+07],
[1.6190000e+01, 7.9967560e+06],
[1.6160000e+01, 9.1933320e+06],
[1.6120000e+01, 8.2961500e+06],
[1.6270000e+01, 1.9034143e+07],
[1.6560000e+01, 5.3304724e+07],
[1.6400000e+01, 1.2555292e+07],
[1.6480000e+01, 1.1478663e+07],
[1.6540000e+01, 1.2180687e+07],
[1.6600000e+01, 1.4288268e+07]])
In:df2=pd.read_excel('test2.xlsx',dtype=str)
index1=df2['交易日期'].values>='2017-01-05'
index2=df2['交易日期'].values<='2017-01-16'
TF=index1&index2
TF
Out:array([False, False, True, True, True, True, True, True, True,
False, False, False, False, False])
In:S=sum(Nt[TF, 1])
S
Out:103062370.0