利用pandas完成CSV文件、文本文件以及Excel文件的转换。

import pandas as pd

df = pd.read_csv('国内疫情数据.csv')
# csv转excel
df.to_excel('C:\\Users\\fch\\Desktop\\excel1.xlsx',encoding='gbk')
# csv转txt
df.to_csv('C:\\Users\\fch\\Desktop\\txt.txt',encoding='gbk')
# txt转excel
with open('C:\\Users\\fch\\Desktop\\excel2.xlsx','w',encoding='gbk') as f:
    data = open('C:\\Users\\fch\\Desktop\\txt.txt',encoding='gbk')
    for line in data:
        f.write(line)

数据处理及numpy、pandas库使用

import math

import pandas as pd
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
# 1.读取catering_sale.xls 餐饮数据,用describe对数据输出基本描述。
# data=pd.read_excel('D:\作业\韩毅数据分析\demo\data\catering_sale.xls')
# print(data)
# data=data.describe()
# print(data)

# 2.随机生成数据样本D,一行为3到10,一行为13~20,分别用Spearman、Pearon方法、计算输出其相关系数
# data=np.array([np.arange(3,11),np.arange(13,21)])
# print(data)
# data_1=stats.spearmanr(data[0],data[1])
# print("spearmanr方法:"+'\n',data_1)
# data_2=stats.pearsonr(data[0],data[1])
# print("Pearonr方法:"+'\n',data_2)

# 3.随机生成5*5的矩阵,计算输出该矩阵的均值、中位数、标准差、方差、协方差矩阵
# data=np.random.randint(0,200,size=(5,5),dtype=int)
# print(data)
# ave=np.mean(data)
# print("均值:",ave)
# Var=np.var(data)
# print("方差:",Var)
# Std=np.std(data)
# print("标准差:",Std)
# med=np.median(data)
# print("中位数:",med)
# cov=np.cov(data)
# print("协方差矩阵:",cov)


# 4.随机生成1000个正态分布的数据,画出该数据的箱式图
# data=np.random.rand(1000)
# plt.figure(figsize=(10,10))
# plt.boxplot(data)
# plt.show()


# -*- coding: utf-8 -*-



# 1、读入catering_sale.xls销量数据,找出异常值置为空值,采用拉格朗日插值法对空值进行插值,将结果输出至sales.xls
# import pandas as pd
# from scipy.interpolate import lagrange  # 导入拉格朗日插值函数
# # 拉格朗日插值代码
# import pandas as pd #导入数据分析库Pandas
# import numpy as np
# import matplotlib.pyplot as plt
# from scipy.interpolate import lagrange #导入拉格朗日插值函数
# # inputfile = 'catering_sale.xls' #销量数据路径
# # outputfile = 'sales.xls' #输出数据路径
# data = pd.read_excel('catering_sale.xls') #读入数据
# temp = data[u'销量'][(data[u'销量'] < 400) | (data[u'销量'] > 5000)] #找到不符合要求得值 data[列][行]
# for i in range(temp.shape[0]):
#     data.loc[temp.index[i],u'销量'] = np.nan #把不符合要求得值变为空值
# #自定义列向量插值函数
# #s为列向量,n为被插值的位置,k为取前后的数据个数,默认为5
# def ployinterp_column(s, n, k=5):
#   y = s.iloc[list(range(n-k, n)) + list(range(n+1, n+1+k))] #取数 就是传入得data
#   y = y[y.notnull()] #剔除空值
#   f = lagrange(y.index, list(y))
#   return f(n) #插值并返回插值结果
# #逐个元素判断是否需要插值
# for i in data.columns:
#   for j in range(len(data)):
#     if (data[i].isnull())[j]: #如果为空即插值。
#         data.loc[j,i] = ployinterp_column(data[i], j)
# data.to_excel('sales.xls') #输出结果,写入文件
# print("success")


# 2、读入principal_component.xls数据,使用PCA降维,输出模型的各个特征向量及各个成分各自的方差百分比。
# -*- coding: utf-8 -*-

# 代码4-6 主成分分析降维
# import pandas as pd
# from sklearn.decomposition import PCA
# # 参数初始化
# data = pd.read_excel('principal_component.xls', header = None)  # 读入数据
# pca = PCA()
# pca.fit(data)
# pca.components_  # 返回模型的各个特征向量
# pca.explained_variance_ratio_  # 返回各个成分各自的方差百分
# # 代码4-7 计算成分结果
# pca = PCA(3)
# pca.fit(data)
# low_d = pca.transform(data)  # 用它来降低维度
# pd.DataFrame(low_d).to_excel('dimention_reducted.xls')  # 保存结果
# pca.inverse_transform(low_d)  # 必要时可以用inverse_transform()函数来复原数据
# low_d



# 对一个10×4维的随机生成矩阵进行主成分分析
# import pandas as pd
# import numpy as np
# D = pd.Series([1, 1, 2, 3, 5])
# D.unique()
# np.unique(D)
# from sklearn.decomposition import PCA
# D = np.random.rand(10,4)
# pca = PCA()
# pca.fit(D)
# pca.components_  # 返回模型的各个特征向量
# pca.explained_variance_ratio_  # 返回各个成分各自的方差百分比
#
# print(pca.explained_variance_ratio_ )


# 1.创建一个数值范围为0-1,间隔为0.1的数组。
# list=np.arange(0,1,0.1)
# print(list)

# 创建100个服从正态分布的随机数。
# data=np.random.rand(100)
# print(data)

# 3.对创建的两个四行三列的二维数组进行合并运算。
# data_1=np.random.randint(0,20,size=(4,3))
# data_2=np.random.randint(40,60,size=(4,3))
# # 垂直合并
# data1=np.vstack((data_1,data_2))
# #水平合并
# data2=np.hstack((data_1,data_2))
# print(data_1)
# print(data_2)
# print("垂直合并:"+'\n',data1)
# print("水平合并:"+'\n',data2)


num=input("请输入股票代码:")
name=input("请输入股票名称:")
M_max=input("请输入当天股票最高价:")
M_min=input("请输入当天股票最低价:")
print("股票代码:{},股票名称{}".format(num,name))
print("最高价:{},最低价:{},差值:{}".format(M_max,M_min,int(M_max)-int(M_min)))

# re=int(input("请输入实部:"))
# vi=int(input("请输入虚部:"))
# print("复数形式:{}+{}i,模:{}".format(re,vi,math.sqrt(re*re+vi*vi)))

# type=int(input("请输入客户类型:"))
# price=int(input("请输入价格:"))
# num=int(input("请输入订货量:"))
# if type<5:
#     if num<800:
#         money=num*price
#     else:
#         money=num*price*(1-0.02)
# else:
#     if num<500:
#         money = num * price * (1 - 0.03)
#     elif num>=500 and num<1000:
#         money = num * price * (1 - 0.05)
#     elif num>=1000 and num<2000:
#         money = num * price * (1 - 0.08)
#     else:
#         money = num * price * (1 - 0.1)
# print("money:",money)


# sum=0
# for i in range(100,201):
#     if i%2!=0:
#         sum+=i
# print(sum)

# x=int(input("请输入一个自然数:"))
# for i in range(x-1,1,-1):
#     # print("sfds3")
#     if x%i==0:
#         print(i)
#         break


# for i in range (2,101):
#     for j in range(2,i):
#         if i%j==0:
#             break
#     else:
#         print(i,end=' ')