![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
Spicrab
这个作者很懒,什么都没留下…
展开
-
Pandas DataFrame| 按照字典dict替换Pandas DataFrame的值:三种方法性能比较
Setup需要将Pandas dataframe df中一列的值根据字典d进行替换,将数字1、2、3、4、5换成字符"number 1", “number 2”,以此类推。import numpy as npimport pandas as pdimport time# construct test datasetn = 1000000 # length of testsetd = {1:'number 1',2:'number 2',3:'number 3',4:'number 4',5:原创 2021-02-09 14:31:46 · 4444 阅读 · 0 评论 -
LeetCode | 14. Longest Common Prefix的三种算法
问题Write a function to find the longest common prefix string amongst an array of strings.Solution 1: Binary Search Using Recursion大概的思路是:首先找到input中string的最小长度L,然后把每个string从L/2处一分为二,先比较[0, L/2]是否是common prefix。如果前一半是,则比较[L/2+1, 3/4*L];如果前一半不是,则比较[0,L/4]。原创 2021-01-03 18:42:07 · 166 阅读 · 0 评论 -
UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0x80 in position 1: invalid start byte
Error用pandas读取一个csv文件时出现该错误:import pandas as pddf = pd.read_csv('filename', index_col=0)error message为UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 1: invalid start byte.Solution虽然在检查了该csv文件后未发现第一行文本有问题,但这个错误一定与utf-8无法解码文本有关。在原创 2020-09-07 17:45:05 · 1883 阅读 · 0 评论 -
pandas DataFrame 几列字符串合并为一列的方法
问题DataFrame里有四列字符串,希望把它们合并为一列,新column形式为item1, item2, item3, item4。除了第一列一定有值以外,其余三列都可能是NA。遇到NA需要跳过,比如如果2、4是NA,结果应是item1, item3。解决np.where()可以用来解决NA的问题,代码如下:df = df.fillna('no_item') #将NA换成str,方便查NAdf['new'] = df['item1'] + \ np.where(df['item2']!='原创 2020-07-13 21:06:19 · 4535 阅读 · 0 评论 -
Python | Pandas DataFrame最常用的十二个方法总结
在data science领域,pandas是python最常用的library,而DataFrame又是pandas最核心的数据结构。用久了,发现与pandas DataFrame相关的常用的方法其实就那么几个,只要能熟练掌握便能解决大部分需求了。1. Create a pandas DataFrame如果数据已经以list的形式存在了的话,最常用的方法是直接pass in 一个字典,比如:import pandas as pdname_lst = ['John','Mike']age_lst原创 2020-06-21 01:09:54 · 1302 阅读 · 0 评论 -
Python append()的两个坑
Python append()的两个坑写Python的时候被append()这个简单又常用的方法不知道坑了多少次了……1. return None第一个坑:append()会修改原list,而不会return任何东西。正确:lst.append(new_item)错误:lst = lst.append(new_item) #此时lst就变成NoneType了注意:pandas DataFrame的append()恰恰相反,会return a new DataFrame:正确:原创 2020-06-15 23:26:37 · 1760 阅读 · 0 评论 -
Hackerrank | Hash Tables: Ransom Note解答
Hash Tables: Ransom Note原题点这里第一次尝试:失败def checkMagazine(magazine, note): for word in note: if word in magazine: magazine.remove(word) elif word not in magazine: ...原创 2019-08-06 22:06:53 · 280 阅读 · 0 评论 -
算法 | Five Steps to Dynamic Programming(解决动态规划问题的五个步骤)
动态规划(DP)是最常用的算法之一。它借助Divide and Conquer的思想,将一个问题分解为一个个渐进的subproblems(子问题),最终通过解决这些子问题来得到问题的终极答案。和recursion(递归)的不同,DP会将所有子问题的答案存在一个表格里,以达到方便提取、提升效率的作用。因此,用递归需要指数时间解决的问题,很多都可以用DP在多项式时间内解决。一个最常见的例子就是计算第...原创 2019-08-01 15:47:10 · 575 阅读 · 0 评论 -
Python | 如何安装并使用pip(Win10, Python3)
pip是最常用的Python package管理系统。通过get-pip,我们可以简便地在win10系统上安装pip:1. 下载并运行get-pip.py点击链接下载get-pip文件 —— 打开IDLE窗口 —— 打开并运行get-pip. py.如果没有问题的话,窗口会出现进度条提示并最终显示安装完成。2. 添加环境变量找到pip在电脑中的存储位置(默认应该在Python所在文件夹中...原创 2019-01-15 11:44:42 · 750 阅读 · 0 评论 -
Python | Attribute Error: 'Nonetype' object has no attribute '__getitem__'
背景写一个计算中位数的方法,相关的代码是:new_list=list.sort()if len(list)%2==1: return new_list[(len(list)-1)/2]返回错误:'Nonetype' object has no attribute '__getitem__'问题Nonetype的错误说明,我们在某对象上试图使用一个方法或访问一个属性...原创 2018-06-23 18:06:28 · 16608 阅读 · 1 评论