fname=input("请输入要打开的文件:")#D:/数学建模练习/2022年MathorCup大数据竞赛-赛道A初赛/附件1:订单数据.txt
#D:/数学建模练习/2022年MathorCup大数据竞赛-赛道A初赛/附件2:阿姨数据.txt
file=open(fname,'r')
file.readlines()
l2=[]
t=['\n']
l2=list(file)
for l in l2:
t.append(l.split(','))
file.close()
fname1=input("请输入要存入的文件:")#D:/数学建模练习/2022年MathorCup大数据竞赛-赛道A初赛/1.csv
#D:/数学建模练习/2022年MathorCup大数据竞赛-赛道A初赛/2.csv
file1=open(fname1,'a')
for line in t:
file1.writelines(line)
file1.close()
解决一行不同字符出现在一个单元格里:csv文件在excel中是这样显示的
python怎么读取txt文件的某一列?(python指定读取txt某一列)
利用文件读写打开读取文件并写入信息:
import numpy as np
k=[]
l2=[]
t=[]
for o in range(1):
op=0
fname=input("请输入要打开的文件:")#D:/数学建模练习/2022年MathorCup大数据竞赛-赛道A初赛/附件1:订单数据.txt
#D:/数学建模练习/2022年MathorCup大数据竞赛-赛道A初赛/附件2:阿姨数据.txt
file=open(fname,'r')
p=file.readlines()
k.append(len(p))
file.close()
fname1=input("请输入要存入的文件:")#D:/数学建模练习/2022年MathorCup大数据竞赛-赛道A初赛/1.csv
#D:/数学建模练习/2022年MathorCup大数据竞赛-赛道A初赛/2.csv
file1=open(fname1,'a')
for line in p:
file1.write(line)
file1.close()
利用numpy库读取数据:
先样本抽样,基于 Python 的 8 种常用抽样方法 - 元宇宙
根据样本绘制散点图,然后聚类分析:
替换列表元素:python 直接替换列表中的元素4种方法_python替换列表中的元素_秋天の的博客-CSDN博客
绘制散点图:python绘制散点图的两种方法 - python基础教程
画拟合线:python - 如何添加一条最适合散点图的线 - IT工具网
import numpy as np
import random
import pandas as pd
import matplotlib.pyplot as plt
#为了便于处理数据将第一行的标题删除了,人为记录标题
step1()
step1()
#根据统计阿姨的数量大于订单数
def step1():
k=[]
axis=[]
l2=[]
t=[]
for o in range(1):
data=[]
op=0
fname=input("请输入要打开的文件:")#D:/数学建模练习/2022年MathorCup大数据竞赛-赛道A初赛/附件1:订单数据.txt
#D:/数学建模练习/2022年MathorCup大数据竞赛-赛道A初赛/附件2:阿姨数据.txt
file=open(fname,'r')
p=file.readlines()#统计单数
k.append(len(p))
print(k[0])
file.close()
data=np.loadtxt(fname,dtype=float,delimiter=',')
for i in data:
oo=[i[-2],i[-1]]#统计坐标
axis.append(oo)
print(len(axis))
part=[]
part1=[]#第一象限包括x轴的正半轴,包括原点
part2=[]#第二象限包括y轴的正半轴
part3=[]#第三象限包括x轴的负半轴
part4=[]#第四象限包括y轴的负半轴
#分成四个坐标抽样
for i in axis:
if i[0]>=0.0 and i[1]>0.0 or(i[0]==i[1]==0):
part1.append(i)
elif i[0]<0.0 and i[1]>=0.0:
part2.append(i)
elif i[0]<=0.0 and i[1]<0.0:
part3.append(i)
elif i[0]>0.0 and i[1]<=0.0:
part4.append(i)
part=[len(part1),len(part2),len(part3),len(part4)]
sample=len(p)/20#共抽取约110个样本
rate=[]
part_1=[]
for i in part:
part_1.append(int(i*sample/len(p)))#根据输出判断订单分布并绘制散点图
print(part_1)
sample_1=[]
ll=[part1,part2,part3,part4]
for i in ll:
sample_1.append(pd.DataFrame(i))
paint1=[]
paint2=[]
for i in range(len(sample_1)):
paint1+=(list(sample_1[i].sample(n=part_1[i])[0]))#去掉DtaFrame中的data等说明,利用两个列表相加
paint2+=list(sample_1[i].sample(n=part_1[i])[1])
print(paint1)
print(paint2)
plt.scatter(paint1,paint2)