简说Python,号主老表,Python终身学习者,数据分析爱好者,从18年开始分享Python知识,原创文章227篇,写过Python、SQL、Excel入门文章,也写过Web开发、数据分析文章,老表还总结整理了一份2022Python学习资料和电子书资源,关注后私信回复:2022 即可领取。
技能
“1、长网址转短网址?
”
有时候需要往群里分享链接,但是网址太长了,直接发出去,对群友不是很友好,所以最好的方法是通过一些短网址平台将长网址转成短网址(可以自己代码diy)。
这里我推荐:https://sina.lt/
压缩前:https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzUyOTAwMzI4NA==&action=getalbum&album_id=2539917502613553153&scene=173&from_msgid=2247527635&from_itemidx=1&count=3&nolastread=1#wechat_redirect 压缩后:https://dwz.win/az6Q
“2、Github 项目 git clone 很慢,怎么加速?
”
可以使用国内加速器(镜像),我常用的是:https://github.91chi.fun
使用国内镜像,在 git clone 链接前面增加 https://github.91chi.fun 即可。
git clone https://github.com/vercel/swr.git 改为 git clone https://github.91chi.fun/https://github.com/vercel/swr.git
如果我们除了 git clone 主项目外,还需要 git clone 循环克隆依赖项目,则会使用:
git clone --recursive https://github.91chi.fun/https://github.com/Microsoft/LightGBM
这时虽然加了国内加速器,但是只对主项目有效,clone 其他项目还是走的国外,这样还是会出现 403 错误,当然也有解决方法:
- 先 git clone 主项目
- 修改项目中的 .gitmodules 内容(里面记录了要clone的依赖),加上国内加速器
- 项目目录下执行 git submodule update --init --recursive
- 如果提示失败,可以继续执行 git submodule update --recursive
Linux 相关
“1、删除之前执行的指令?
”
什么时候会用?创建镜像,可能需要修改新增一些东西,在进入容器执行相关指令后,docker commit 成一个新镜像,可以删除 之前执行指令。
history -c
“2、终端查看 显卡 GPU使用情况?
”
watch -n 1 nvidia-smi
n 后面接的是刷新频率,1 表示每秒刷新一次。
Python 相关
“1、如何查看 Python 某个包的路径?
”
import mmseg print('mmseg path:', mmseg)
“2、字符串转字典的坑和方法?
”
my = "{'name': '简说Python', 'author': '老表'}"
上面字符串,如果直接 dict(my)
转成字符串会出现下面错误,原因是没法直接通过 dict 将字符串转成字典:
ValueError: dictionary update sequence element #0 has length 1; 2 is required
再想到可以使用 json 读取转变,但是直接 json.loads(my)会出现下面错误:
JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
这个错误原因是 json 需要字典字符串是 “
双引号包裹的,但是案例是 单引号。
import json my = "{'name': '简说Python', 'author': '老表'}" type(json.loads(my.replace("\'", "\"")))
我们可以使用上述方法将字典字符串内的 单引号 改成 双引号,然后 loads 可以解决上面问题。
my = "{'name': '简说Python', 'author': '老表'}" type(eval(my))
也可以使用内置函数 eval 来将字典字符串转为字典。
“3、Python 去除重复数据?
”
我最先想到的就是 pandas 了,先设法将数据读取转成 DataFrame 格式,然后掉用 drop_duplicates 函数即可。
DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)
- subset : 指定按哪些列来判断是否重复,默认所有列
- keep : 删除重复项,保留那一次的数据,默认 first(保留第一次出现的),也可以设置成 last (保留最后一次出现的)
- inplace : 是否直接在原数据操作修改,默认为 False(不在原数据上修改,返回修改后的数据对象)。
import pandas as pd my_df = pd.DataFrame([{'name': '简说Python', 'author': '老表'}, {'name': '简说Python', 'author': '老表Max'}, {'name': '简说Python', 'author': '老表Pro'} ]) my_df_m = my_df.drop_duplicates()
生活
“生活在荡漾,缺乏思考
”
今天分享就这些啦,希望对大家有所帮助,这是一个新栏目,总结下每天遇到的问题,记录分享给大家。喜欢就点个赞~