![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python基础语法
雪shan飞hu
这个作者很懒,什么都没留下…
展开
-
DataFrame通过逻辑判断切片时报错‘ValueError: The truth value of a Series is ambiguous. Use a.empty...
df = pd.DataFrame({"A":[1,2,3],"B":[10,20,30]})首先生成一个dataframe如果我想取出满足:A>2且B>20的部分df[(df['A']>2) and (df['B']>20)]这样会报错 The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().此时需要使用df[(df['A']>原创 2021-10-04 13:20:42 · 1489 阅读 · 0 评论 -
Pandas中df.resample在不同日期间会补全
有个dataframe,日期横跨了8月23日和8月24日两天现在运行 df.resample(“3min”).max()输出结果是原来的df一共才6个数,结果resample之后编程482个数了,就是因为它自动补全了23号到24号直接的每一分钟,补充的number为NaN。解决方法很简单,resample之后只保留值不为空的数据即可df[df[“number”].notnull()]...原创 2021-08-24 00:07:11 · 1059 阅读 · 0 评论 -
Windows下,Python导入rarfile后使用open、extractall报错cannot find work tool 或Unrar not installed?
解决方法:1. 百度WinRAR安装,安装在默认路径2. 把C:\Program Files\winrar(就是WinRAR的安装路径)的Rar.exe和UnRAR.exe复制到c:\windows原创 2021-01-13 15:17:56 · 1053 阅读 · 0 评论 -
pandas多重索引分别按索引排序
设有如下的多重索引的dataframe要实现的功能为,按ID列降序,number列升序排列dataframe.sort_index(level=[0,1],ascending=[False,True])原创 2020-12-18 13:17:31 · 2141 阅读 · 1 评论 -
Python tricks
把True/False转换成1/0import numpy as npa = np.array([True, False])print(a + 0)# 或者使用a.astype(int)A trick when you want to flatten a matrix X of shape (a,b,c,d) to a matrix X_flatten of shape (b ∗∗ c ∗∗ d, a) is to use:X_flatten = X.reshape(X.shape[.原创 2020-09-15 18:27:56 · 377 阅读 · 0 评论 -
用pycharm连接云端服务器
一、连接云端1、Tools --> Deployment–>configuration2、先点左上角的加号,选择SFTP,然后输入与你的云端服务器对应的信息再点Mapping,第一行Local path是本地项目的地址,其他两行用斜杠即可,点OK再回到主界面,如图点击“自动上传”,下面的‘Browse remote host’也点一下,右边就会出来绿色的云端文件界面。二、配置编译器file–>setting–>project interpreter,然后点右原创 2020-06-26 01:20:16 · 4140 阅读 · 0 评论 -
用open或with open读取Python文件
1. 基本用法file = open("./hello.txt",'r')for line in file.readlines(): print(line)file.close()说明:(1)在文件名前的“./”是指“在当前目录下”(2)关于“read”,“readline”,“readlines”的区别,推荐参考https://www.cnblogs.com/hanggegege/p/5926549.html2. 还可以使用with open,达到同样的效果,不需要再使用close()w原创 2020-06-12 13:52:42 · 397 阅读 · 0 评论 -
求numpy.array数组里有多少个元素(len,shape,size)
import numpy as npz = np.random.randint(10,size=(3,5))print("z = \n", z)print("len(z) = ",len(z))print("z.size = ", z.size)print("z.shape = ", z.shape)运行结果:z = [[8 5 6 7 7] [8 2 7 5 1] [9 3 0 3 3]]len(z) = 3z.size = 15z.shape = (3, 5)原创 2020-06-04 17:06:19 · 17468 阅读 · 0 评论 -
玩转Python随机数
本文转载自https://www.cnblogs.com/twilight77/p/7675512.htmlPython中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。random.randomrandom.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0random.uniformrandom.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,转载 2020-05-28 17:30:07 · 237 阅读 · 0 评论 -
Python统计list列表各个元素出现次数
计数用的函数是count(),列表中会出现重复的项,所以转化成set去除重复元素import numpy as nplist1 = [1,2,3,1,1,2,2,1,3]list2 = list(set(list1))for i in list2: print(i,": ",list1.count(i))...原创 2020-04-19 18:37:35 · 2950 阅读 · 0 评论 -
break,continue,return,exit,pass的区别
break:跳出整个循环continue:结束本次循环,继续下一次循环return:退出整个函数exit:结束进程,删除子进程空间pass:占位而已,相当于什么都没干...原创 2020-02-18 07:05:46 · 414 阅读 · 0 评论 -
Python中股票(对数)收益率的计算
读取股票价格数据后,np.array格式和DataFrame格式用不同的方法。如果是np.array格式,比如价格为pricefrom numpy import *from pandas import *# 假如价格波动是4,7,10,4price = array([4,7,10,4])# 如果要计算对数收益率,就加一行代码:price = log(price)b = diff(pr...原创 2020-01-21 05:01:30 · 15766 阅读 · 0 评论 -
Pandas.Series索引iloc与loc的区别
iloc是普通索引,根据series的下标查找loc是按index的具体值查找import pandas as pdA = [1,2,3,4]A = pd.Series(A,index=['a','b','c','d'])print("iloc输出结果: ",A.iloc[1]) # 普通索引,根据下标找print("loc输出结果: ",A.loc['c']) # 在索引inde...原创 2020-01-13 02:02:28 · 1993 阅读 · 0 评论 -
Python 类方法定义中下划线的使用
__foo__: 定义的是特殊方法,一般是系统定义名字 ,如 __init__() 之类的。_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了...转载 2020-01-11 17:50:36 · 2832 阅读 · 0 评论 -
Python 求list中最大的n个数
设列表 b = [1,5,3,6,7,4,2,10],求最大的4个数字方法一:先排序后取数字b = [1,5,3,6,7,4,2,10]sorted(b,reverse=True)[:4] # reverse是为了降序排列方法二:使用堆heapqimport heapqb = [1,5,3,6,7,4,2,10]heapq.nlargest(4, b)以上两个方法都会输出 [...原创 2019-12-30 01:52:41 · 6180 阅读 · 0 评论 -
Python numpy.array一维无法使用T转置
在对一维array转置的时候,array([1, 2, 3]).T 是无效的,需要进行一些处理才可以转置生成一个array# input>> arr1 = np.array([1,2,3]) >> arr1# outputarray([1, 2, 3])如果直接对该array用T进行转置# input>> arr1.T# outpu...原创 2019-12-29 21:13:05 · 6325 阅读 · 2 评论 -
python中字典(dictionary)转DataFrame报错ValueError: arrays must all be same length
问题:将dictionary转为DataFrame时,可能由于长度不同而报错,例如:dict = {'A':[1,1,1],'B':[2,2], 'C':[3]}df = pd.DataFrame(dict)因为ABC对应的value长度不同,所以会报错:arrays must all be same length。解决方案:将每个value用循环取出到 list 中,再将 list ...原创 2019-12-23 08:52:56 · 2924 阅读 · 0 评论 -
np.random的各种生成随机数方法
转载自https://blog.csdn.net/u012149181/article/details/789131671. numpy.random.rand(d0,d1,…,dn)根据给定维度生成[0,1)之间的数据2.numpy.random.randn(d0,d1,…,dn)randn函数返回一个或一组样本,具有标准正态分布。3.1 numpy.random.randint()...转载 2019-12-22 17:47:05 · 5743 阅读 · 1 评论 -
Python中对多个对象使用groupby
问题:使用 groupby 和 describe 统计不同种族和性别人群的年龄分布数据。data.groupby(by=['native-country','sex'])["age"].describe()或者使用循环for (race, sex), sub_df in data.groupby(['race', 'sex']): print("Race: {0}, sex: {1...原创 2019-12-19 18:09:51 · 2064 阅读 · 0 评论 -
Python中用sum求dataframe某列的数量
sum()是求和函数,如果对象是一些具体数字就是求和;如果对象是bool类型,那么True=1,False=0,从而sum求和可以得知True的数量。例如,一个dataframe结构如下要求education为bachelor的人数:(data[“education”]==“bachelor”).sum()因为前面圆括号中的内容为一个判断不等式,只有False和True两个类型。或者...原创 2019-12-19 17:12:31 · 6609 阅读 · 0 评论 -
一篇搞懂python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)
‘r’:只读。该文件必须已存在。‘r+’:可读可写。该文件必须已存在,写为追加在文件内容末尾。‘rb’:表示以二进制方式读取文件。该文件必须已存在。‘w’:只写。打开即默认创建一个新文件,如果文件已存在,则覆盖写(即文件内原始数据会被新写入的数据清空覆盖)。‘w+’:写读。打开创建新文件并写入数据,如果文件已存在,则覆盖写。‘wb’:表示以二进制写方式打开,只能写文件, 如果文件不存在,...转载 2019-12-15 04:55:12 · 233 阅读 · 0 评论 -
利用Python的openpyxl对Excel实现空白单元格的填充
一、目的将如图的Excel表格中,A2-A11填充A1内容,将B2-B11填充B1内容;下面的空白单元格按同样规则填充,共三百多格需要填充二、利用Python实现需要进行编辑的Excel名字为“填充.xlsx”,编辑后将新的Excel保存为“data.xlsx”import openpyxl as opexl = op.load_workbook('填充.xlsx') ...原创 2019-08-25 18:20:58 · 15219 阅读 · 2 评论 -
报错UnicodeEncodeError: ‘gbk’ codec can’t encode character
用Python将网络数据写入本地时,使用open后,报错UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xef’ in position 25642: illegal multibyte sequence,是因为解码编码不同所导致的。根据这位大神的方法,顺利解决了问题,讲解非常简洁易懂。简言之,就是在代码中加入指定encode:...转载 2019-06-12 11:00:46 · 3954 阅读 · 0 评论 -
Python中解决UnicodeDecodeError: 'gbk' codec can't decode byte 0x86
pycharm中打开文件需要使用open,代码如下import osfile = open("exercise01.py")print(file.read())此时会报错:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x86……笔者的处理方式是,在open函数中加入文件读写模式的说明,其中二进制文件需要用“rb”读写,故将第二行代...原创 2019-06-05 09:57:13 · 11778 阅读 · 1 评论 -
Python中如何退出递归函数
在使用for或while循环时,可以使用break终止循环,但是对于另一种循环形式——递归函数,无法使用break,那么如何退出递归函数呢?结论:使用return或全局变量笔者希望使用递归函数打印1-20中的奇数,退出方法首先考虑exit:x = 1print(x)def fun(): global x if x < 20: x = x+2 ...原创 2019-01-08 22:45:39 · 18559 阅读 · 2 评论