python的基本操作和在Juypter中数据操作处理(暑假点宽科技布置的作业,持续更新)附完整代码文件

python大作业附操作题(暑假实践课点宽科技布置的作业,持续更新)附完整代码文件

一、选择题

  1. 下面那个选项定义的不是字符串类型:
    A. a=[hello]
    B. a=”hello”
    C. a=’hello’
    D. a=”””hello”””
    答案:A

  2. print (Str[0])和print (Str[0:-1])分别会得到字符串中哪些元素?
    A. 第一个字符和最后一个字符
    B. 第一个字符和第一个到最后一个字符
    C. 第一个字符和第一个到倒数第二个字符
    D. 第二个字符和第一个到倒数第二个字符
    答案:C
    补充:str[0:-1]为切片,意思是从前面开始截取到后面-1为止,所以输出第一个到倒数第二个的所有字符

  3. 假设我们定义变量t=[‘a’,‘b’,‘c’,‘d’,'e’],然后再令t[0]=’f’,最后打印输出列表t我们会得到什么输出结果?
    A. [‘f’,‘a’,‘b’,‘c’,‘d’,'e’]
    B. [‘a’,‘f’,‘b’,‘c’,‘d’,'e’]
    C. [‘f’,‘b’,‘c’,‘d’,'e’]
    D. [‘f’,‘a’,‘b’,‘c’,‘d’]
    答案:C

  4. 假设我们定义变量t=[‘a’,‘b’,‘d’,'e’],然后再令t.insert(2,’c’),最后打印输出列表t我们会得到什么输出结果?
    A. [‘a’,‘b’,‘d’,'c’,'e’]
    B. [‘a’,‘c’,‘b’,'d’,'e’]
    C. [‘a’,‘b’,‘c’,'d’,'e’]
    D. 以上都不是
    答案:B

  5. 下面关于数据类型说法不正确的是:
    A. 浮点型可以转换为整型和字符串
    B. 整型和字符串类型都可以转换为列表类型
    C. 列表类型,元组类型和集合类型数据不可以转换为字符串类型
    D. 以上都正确
    答案:C

  6. 下面关于条件语句的说法正确的是:
    A. ”else”可以单独出现
    B. ”elif”可以单独出现
    C. ”else”是”if”语句的可选项
    D. 以上都正确
    答案:C

  7. 下面关于pass语句的说法正确的是:
    A. pass语句的作用与break语句相同
    B. pass语句的作用与continue语句相同
    C. pass是空语句,是为了保持程序结构的完整性。
    D. pass语句不做任何事情,一般用作占位语句。
    答案:D

  8. 下面关于函数定义的说法错误的是:
    A. 通过固定语法def 声明这是一个函数
    B. 函数名称定义的基本规则是与英文开头,首字不能为数字。由英文、数字以及下划线组成
    C. 函数的返回对象不可以为空
    D. Python提供三种代码注释方法,即单行注释用 # 开头,多行注释用三个单引号或三个双引号。
    答案:D

  9. 下面的Python代码块输出的结果是( )

def add(x,y):
    print ("x+y=",x+y)

add(1,2,3)

A. 3
B. 5
C. 4
D. 报错
答案:D
10. 假如有a和b两个数组,以下哪一代码表示水平方向连接数组a和b?
A. print (np.concatenate((a,b)))
B. print (np.concatenate((a,b),axis = 1))
C. print (np.hstack((a,b)))
D. print (np.vstack((a,b)))
答案:C
11. 构建一个数组x=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]]),以下哪一代码表示获取第三行第二列的元素:
A. print(x[3,2])
B. print(x[2,3])
C. print(x[2,1])
D. print(x[1,2])
答案:C
12. 假设a为数组,以下哪一代码表示的是数组a向下取整?
A. print (numpy.around(a))
B. print (numpy.floor(a))
C. print (numpy.ceil(a))
D. print (numpy.reciprocal(a))
答案:B
13. pandas库提供哪两种删除列的方法?
A. drop和del
B. drop和pop
C. del和pop
D. pandas库无法删除列
答案:A
14. 假如我们有名为df的DataFrame,但是df中的标签不是按顺序排列的,如果我们想要令df的标签按降序进行排列,我们该用以下哪一代码?
A. sorted_df= df.sort_index()
B. sorted_df= df.sort_index(ascending=False)
C. sorted_df= df.sort_index(ascending=True)
D. sorted_df= df.reindex()
答案:B
15. 假设df为有缺失值的一个DataFrame,如果想用前一行数据填充缺失值,我们需要用以下哪一代码?
A. df.fillna(method=‘pad’)
B. df.fillna(method=‘backfill’)
C. df.fillna(0)
D. 以上都不是
答案:D
16. 下面关于merge函数中外连接和内连接定义正确的是?
A. 外连接不管是左边存在,还是右边存在,合并后都需要保留。而内连接合并后只保留两边都存在的数据。
B. 内连接不管是左边存在,还是右边存在,合并后都需要保留。而外连接将左右两只保留两边都存在的数据。
C. 内连接合并后不保留存在缺失值的数据,外连接合并后保留存在缺失值的数据。
D. 内连接和外连接合并后,都只保留两边存在的数据。
答案:B

二、操作题

  1. 请用Python代码实现求1000-2000以内同时能被7,8整除的数。
num_count=0
for i in range(1000,2000):
    if i%7 == 0 and i%8 == 0:
        num_count +=1
print(num_count)
  1. 请用Python代码求1-2+3-4+5 … 99的所有数的和。

    代码稍后!

  2. 数据集data是A股市场茅台股票从2021年1月1日到2021年6月20日的数据集,数据集中的数据包括时间time,股票代码code,开盘价open,最高价high,最低价low,收盘价close,交易量volume,交易金额amount以及持仓量open_interest。
    (1)在Juypter中导入数据集data,并打印查看data。
    步骤:
    a.打开Juypter note,点击上传
    在这里插入图片描述
    b.选择data.csv文件
    在这里插入图片描述
    c.点击上传
    在这里插入图片描述
    d.查看并打印

import pandas as pd
df = pd.read_csv('data.csv')
df

e.结果:
在这里插入图片描述
(2)查看data的数据形状。

import csv
import matplotlib.pyplot as plt
 
filename = 'data.csv'
with open(filename,'r') as f:
    reader = csv.reader(f)      # 生成阅读器,f对象传入
    header_row = next(reader)   # 查看文件第一行,reader是可迭代对象
 
    highs = []
    for row in reader:
        high = float(row[4])#我这里选择了high列数据进行绘图,可以选择其他的open或者low、close等
        highs.append(high)
 
    # 设置图片大小
    
    fig = plt.figure(dpi=128,figsize=(10,6))
    plt.plot(highs, c='red',linewidth=1)        # 设置颜色、线条粗细
 
    # 设置图片格式
    plt.title
    plt.xlabel
    plt.ylabel
 
    plt.show()

结果:
在这里插入图片描述
(3)对数据框data的列表头close进行重新命名为price。

import csv
import pandas as pd
import numpy as np
df=pd.read_csv('data.csv',names=['', 'time', 'code', 'open', 'high', 'low', 'price', 'volume', 'amount', 'open_interest'])
df

结果:
在这里插入图片描述

(4)删除持仓量这一列。

import csv
import pandas as pd
df = pd.read_csv('data.csv')
#删除指定列
df.drop(columns=['open_interest'])

在这里插入图片描述

(5)查看data的前五行数据。

import csv
import pandas as pd
df = pd.read_csv('data.csv')
df = pd.read_csv('data.csv',nrows = 5)
df

结果:
在这里插入图片描述

(6)使得数据框data按收盘价从小到大的顺序进行排序。

import csv
import pandas as pd
df = pd.read_csv('data.csv')
df.sort_values(by=['close'], ascending=True, inplace=True)
df

结果:
在这里插入图片描述

(7)计算茅台在这段时间内,开盘价和收盘价的最大差值。

import csv
import pandas as pd
df = pd.read_csv('data.csv')
# 1. 收盘价-开盘价
df["close-open"] = df["close"] - df["open"]
df.sort_values(by=['close-open'], ascending=True, inplace=True) #排序
print(df.iloc[-1,10])#取值

结果:
在这里插入图片描述

(8) 使用describe函数对数据data进行基础的描述性统计分析,并进行转置。

import csv
import pandas as pd
# 将数据集读入到pandas数据框中
df = pd.read_csv('data.csv', sep=',', header=0)
df.columns = df.columns.str.replace(' ', '_')
#绘图我就不做了
df.describe()# 显示所有变量的描述性统计量

结果:
在这里插入图片描述

  1. 数据集data是A股市场茅台股票从2021年1月1日到2021年6月20日的数据集,数据集data1是A股市场五粮液股票从2021年1月1日到2021年6月22日的数据集,数据集中的数据包括时间time,股票代码code,开盘价open,最高价high,最低价low,收盘价close,交易量volume,交易金额amount以及持仓量open_interest。
    (1) 在Juypter中导入数据集data和data1,并打印查看data。
    步骤:
    a.打开Juypter note
    b.点击upload
    在这里插入图片描述
    c.选择data.csv和data1.csv
    在这里插入图片描述
    d.点击上传
    在这里插入图片描述
    e.打印查看data
import csv
import pandas as pd
df = pd.read_csv('data.csv')
df

结果:
在这里插入图片描述
(2) 请用代码实现将数据集data和data1以时间为关联键按外连接和内连接。

import csv
import pandas as pd
data = pd.read_csv('data.csv')
data1 = pd.read_csv('data1.csv')
connect = pd.merge(data, data1, on='time', how='outer')
print('外连接outer:\n',connect)
connect = pd.merge(data, data1, on='time', how='inner')
print('内连接inner:\n',connect)

结果:
外连接:
在这里插入图片描述
内连接:
在这里插入图片描述
上面的图有点不好看,美化之后如下:
外连接:
在这里插入图片描述
内连接:
在这里插入图片描述
(3) 分别检查连接后的数据集有无缺失值。

import csv
import pandas as pd
data = pd.read_csv('data.csv')
data1 = pd.read_csv('data1.csv')
connect_outer = pd.merge(data, data1, on='time', how='outer')
connect_inner = pd.merge(data, data1, on='time', how='inner')
#缺失值检查
print('外连接缺失值检查:\n',connect_outer.isnull())
print('内连接缺失值检查:\n',connect_inner.isnull())

结果:
外连接缺失值:
在这里插入图片描述
内连接缺失值:
在这里插入图片描述

(4) 如内连接或外连接后有缺失值,使用向前填充的方法进行填充缺失值。(持仓量除外)

import csv
import pandas as pd
data = pd.read_csv('data.csv')
data1 = pd.read_csv('data1.csv')
connect_outer = pd.merge(data, data1, on='time', how='outer')
connect_inner = pd.merge(data, data1, on='time', how='inner')

#外连接缺失值填充
print('原始数据:\n',connect_outer)
del_connect_outer = connect_outer.fillna(method='pad')
print('处理后数据:\n',del_connect_outer)
#内连接缺失值填充
print('原始数据:\n',connect_inner)
del_connect_inner = connect_inner.fillna(method='pad')
print('处理后数据:\n',del_connect_inner)

结果:
外连接原始数据:
在这里插入图片描述
处理后的数据:
在这里插入图片描述
内连接原始数据:
在这里插入图片描述
处理后数据:
在这里插入图片描述

美化后:
外连接原始数据:
在这里插入图片描述
外连接处理后:
在这里插入图片描述
内连接原始数据:
在这里插入图片描述
内连接处理后:
在这里插入图片描述

补充:
1.连接函数merge()
在这里插入图片描述
2.检查缺失值isnull()
在这里插入图片描述
3.缺失值填充
在这里插入图片描述
题目可能出现有错误的地方,欢迎大家评论指出!!!
另外,如有其他问题也可以私信我,我看到回及时回复的!!!

注意:by the way!想学的同学认真跟着操作一遍,看一下代码,也是能学会的

最后:码答案不容易,关注+点赞+收藏一下吧!

附:
完整代码链接:https://pan.baidu.com/s/1Q2JC8_Ioci21Z1jOwiYBOA
提取码:5fxv

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Ashore

感谢各位老板的打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值