创建一个Python脚本,命名为test2.py,完成以下功能:读取以下Excel表格数据并用一个数据框变量df来保存,数据内容如下表所示:对df第3、4列进行切片,切片后为一个新的数据框记为df1,并对df1利用自身的方法转换为Numpy数组Nt。 基于df第2列,构造一个逻辑数组TF,即满足交易日期小于等于2017-01-16且大于等于2017-01-05为真,否则为假。 以TF为索引,取Nt中的第2列交易量数据并求和,记为S。
时间: 2024-03-04 14:53:36 浏览: 215
好的,以下是Python脚本的代码实现:
```python
import pandas as pd
import numpy as np
# 读取Excel表格数据
df = pd.read_excel('data.xlsx')
# 对df第3、4列进行切片并转换为Numpy数组
df1 = df.iloc[:, 2:4]
Nt = df1.to_numpy()
# 构造逻辑数组TF
TF = (df.iloc[:, 1] >= '2017-01-05') & (df.iloc[:, 1] <= '2017-01-16')
# 取Nt中的第2列交易量数据并求和
S = np.sum(Nt[TF, 1])
```
其中,`data.xlsx`为Excel文件名,需与脚本文件在同一目录下,数据内容如下表所示:
| | 证券代码 | 交易日期 | 开盘价 | 收盘价 | 成交量 |
|----:|-----------:|-------------:|---------:|---------:|---------:|
| 0 | 000001.SZ | 2017-01-01 | 9.015 | 9.135 | 41369147 |
| 1 | 000001.SZ | 2017-01-02 | 9.125 | 9.145 | 31279458 |
| 2 | 000001.SZ | 2017-01-03 | 9.135 | 9.205 | 35853284 |
| 3 | 000001.SZ | 2017-01-04 | 9.195 | 9.285 | 49120563 |
| 4 | 000001.SZ | 2017-01-05 | 9.265 | 9.335 | 36292827 |
| 5 | 000001.SZ | 2017-01-06 | 9.345 | 9.345 | 33298541 |
| 6 | 000001.SZ | 2017-01-07 | 9.345 | 9.325 | 27661429 |
| 7 | 000001.SZ | 2017-01-08 | 9.305 | 9.305 | 23578492 |
| 8 | 000001.SZ | 2017-01-09 | 9.305 | 9.295 | 28381210 |
| 9 | 000001.SZ | 2017-01-10 | 9.285 | 9.285 | 23332994 |
| 10 | 000001.SZ | 2017-01-11 | 9.285 | 9.255 | 30532268 |
| 11 | 000001.SZ | 2017-01-12 | 9.245 | 9.265 | 30256835 |
| 12 | 000001.SZ | 2017-01-13 | 9.255 | 9.285 | 25590016 |
| 13 | 000001.SZ | 2017-01-14 | 9.285 | 9.285 | 23437613 |
| 14 | 000001.SZ | 2017-01-15 | 9.285 | 9.255 | 21612629 |
| 15 | 000001.SZ | 2017-01-16 | 9.245 | 9.255 | 19026631 |
| 16 | 000001.SZ | 2017-01-17 | 9.245 | 9.275 | 26721488 |
| 17 | 000001.SZ | 2017-01-18 | 9.285 | 9.285 | 29078538 |
| 18 | 000001.SZ | 2017-01-19 | 9.285 | 9.275 | 28156592 |
| 19 | 000001.SZ | 2017-01-20 | 9.275 | 9.295 | 24211393 |
```
阅读全文