扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、使用循环结构
成都创新互联公司网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了做网站、成都做网站,成都网站设计,广告投放平台,成都做网站选成都创新互联公司,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。
我们在编程中,如果是需要一直重复操作的话,比如说重复的加法,重复发进行运算时,我们就可以使用循环的结构,在这个过程中我们要确定的是就是循环的次数,一般可以使用for循环,举个例子:
sum=0 for i in range(1,101): sum1 = sum1 +i i += 1 print("for--1-100的和是: ",sum1)
在这个例子中,就是对1-100之间的数进行求和的操作,使用的就是for循环来进行计算的,确定了循环的范围是0-100。
2、使用圆形结构
所谓的圆形结构,只不过是换了一种循环的方式,可以使用while循环,使用这种方式是在不知道需要循环的次数时使用,在循环的时候,我们可以使用布尔值来控制循环,如果获得True,循环将继续。如果获得False,则循环终止。
代码如下:
def func1(num_list):
if len(num_list) != len(set(num_list)):
return True
else:
return False
if __name__ == '__main__':
num_list = [[1, 2, 3, 4], [6, 7, 8], [4, 5, 6, 6, 6]]
for one_list in num_list:
print(func1(one_list))
运行结果:
扩展资料
python对列表去重的几种方式:
1、直观方法,先建立一个新的空列表,通过遍历原来的列表,再利用逻辑关系not in 来去重。总结:这样可以做出来,但是过程不够简单。但是此方法保证了列表的顺序性。
2、利用set的自动去重功能,将列表转化为集合再转化为列表,利用集合的自动去重功能。简单快速。缺点是:使用set方法无法保证去重后的顺序。
参考资料:python官网-Doc语法文档
前两天处理数据的时候,需要得到两个数据的交集数据,所以要去除数据中非重复部分,只保留数据中的重复部分。
网上看了一下大家的教程,大部分都是教去除重复行,很少有说到仅保留重复行的。所以在这里用drop_duplicates这个去重函数来实现这个功能。
drop_duplicates函数介绍 :
data.drop_duplicates(subset=[‘A’,‘B’],keep=‘first’,inplace=True)
#subset对应的值是列名,表示只考虑这两列,将这两列对应值相同的行进行去重。
默认值为subset=None表示考虑所有列。
keep='first’表示保留第一次出现的重复行,是默认值。
keep另外两个取值为"last"和False,分别表示保留最后一次出现的重复行和去除所有重复行。
inplace=True表示直接在原来的DataFrame上删除重复项,而默认值False表示生成一个副本。
要用函数取得数据集data中的重复列,分三个步骤 :
(提前导入pandas模块)
data0_1 = data.drop_duplicates() #保留第一个重复行
data0_2 = data.drop_duplicates(keep=False) #去除所有重复行
data0_3=pd.concat([data0_1,data0_2]).drop_duplicates(keep=False)
#合并起来再去重,只剩下真的重复行。
举例:data中wangwu行和tony行重复,需要把它们两行取出。
第一步:#保留第一个重复行
第二步:#去除所有重复行
第三步:#合并起来再去重
通过以上步骤实现取出数据中的重复行。
今天开始琢磨用Python画图,没使用之前是一脸懵的,我使用的开发环境是Pycharm,这个输出的是一行行命令,这个图画在哪里呢?
搜索之后发现,它会弹出一个对话框,然后就开始画了,比如下图
第一个常用的库是Turtle,它是Python语言中一个很流行的绘制图像的函数库,这个词的意思就是乌龟,你可以想象下一个小乌龟在一个x和y轴的平面坐标系里,从原点开始根据指令控制,爬行出来就是绘制的图形了。
它最常用的指令就是旋转和移动,比如画个圆,就是绕着圆心移动;再比如上图这个怎么画呢,其实主要就两个命令:
turtle.forward(200)
turtle.left(170)
第一个命令是移动200个单位并画出来轨迹
第二个命令是画笔顺时针转170度,注意此时并没有移动,只是转角度
然后呢? 循环重复就画出来这个图了
好玩吧。
有需要仔细研究的可以看下这篇文章 ,这个牛人最后用这个库画个移动的钟表,太赞了。
Turtle虽好玩,但是我想要的是我给定数据,然后让它画图,这里就找到另一个常用的画图的库了。
Matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。其中,matplotlib的pyplot模块一般是最常用的,可以方便用户快速绘制二维图表。
使用起来也挺简单,
首先import matplotlib.pyplot as plt 导入画图的图。
然后给定x和y,用这个命令plt.plot(x, y)就能画图了,接着用plt.show()就可以把图形展示出来。
接着就是各种完善,比如加标题,设定x轴和y轴标签,范围,颜色,网格等等,在 这篇文章里介绍的很详细。
现在互联网的好处就是你需要什么内容,基本上都能搜索出来,而且还是免费的。
我为什么要研究这个呢?当然是为了用,比如我把比特币的曲线自己画出来可好?
假设现在有个数据csv文件,一列是日期,另一列是比特币的价格,那用这个命令画下:
这两列数据读到pandas中,日期为df['time']列,比特币价格为df['ini'],那我只要使用如下命令
plt.plot(df['time'], df['ini'])
plt.show()
就能得到如下图:
自己画的是不是很香,哈哈!
然后呢,我在上篇文章 中介绍过求Ahr999指数,那可不可以也放到这张图中呢?不就是加一条命令嘛
plt.plot(df['time'], df['Ahr999'])
图形如下:
但是,Ahr999指数怎么就一条线不动啊, 原来两个Y轴不一致,显示出来太怪了,需要用多Y轴,问题来了。
继续谷歌一下,把第二个Y轴放右边就行了,不过呢得使用多图,重新绘制
fig = plt.figure() # 多图
ax1 = fig.add_subplot(111)
ax1.plot(df['time'], df['ini'], label="BTC price") # 绘制第一个图比特币价格
ax1.set_ylabel('BTC price') # 加上标签
# 第二个直接对称就行了
ax2 = ax1.twinx()# 在右边增加一个Y轴
ax2.plot(df['time'], df['Ahr999'], 'r', label="ahr999") # 绘制第二个图Ahr999指数,红色
ax2.set_ylim([0, 50])# 设定第二个Y轴范围
ax2.set_ylabel('ahr999')
plt.grid(color="k", linestyle=":")# 网格
fig.legend(loc="center")#图例
plt.show()
跑起来看看效果,虽然丑了点,但终于跑通了。
这样就可以把所有指数都绘制到一张图中,等等,三个甚至多个Y轴怎么加?这又是一个问题,留给爱思考爱学习的你。
有了自己的数据,建立自己的各个指数,然后再放到图形界面中,同时针对异常情况再自动进行提醒,比如要抄底了,要卖出了,用程序做出自己的晴雨表。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流