pandas
pandas
jieru_liu
less is more
展开
-
使用 Python 将若干个 PDF 文件合并到一个中
使用 Python 将若干个 PDF 文件合并到一个中原创 2022-12-25 15:45:00 · 709 阅读 · 2 评论 -
python批量发送带附件的邮件时,收到的附件名异常且后缀为bin,解决办法
使用python发送带附件邮件的时,收到bin格式的附件原创 2022-12-17 15:15:00 · 2190 阅读 · 1 评论 -
pandas数据类型转换,astype与convert_dtypes
pandas数据类型转换,astype与convert_dtypes原创 2022-07-03 15:19:46 · 2417 阅读 · 0 评论 -
pandas,根据某几列筛选出重复记录,is_unique与duplicated
is_unique与duplicated,根据一列某几列筛选重复记录原创 2022-06-26 15:45:00 · 4465 阅读 · 0 评论 -
python,读取含中文的文件时,报“UnicodeDecodeError”等乱码错误,最全编码设置方式
编码格式错误。UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position 1: invalid start byte原创 2022-06-03 16:15:00 · 774 阅读 · 0 评论 -
pandas之eval与assign
import pandas as pdimport numpy as npd = pd.DataFrame({"姓名": list("AAABBCDD"), "V1": [i for i in range(1, 9)], "V2": [3, 1, 1, 9, 9, 0, 0, 0]} )d.eval('V = V1 + V2') # 有 inplace 参数print(f"执行 d.ev原创 2022-06-04 15:30:00 · 210 阅读 · 0 评论 -
pandas使用read_excel时,通过dtype参数调整数据类型可能失败,无法通过to_datetime或strptime将日期字符串转成datetime类型
# 导入相关模块import numpy as npimport pandas as pdfrom datetime import datetimefrom pathlib import Pathpd.set_option('display.max_rows', 10) # 设置显示的最大行数# 1、读取数据data = pd.read_excel(Path.cwd()/f"dtype测试文件.xlsx", dtype={"上市日": str,原创 2022-05-28 15:45:00 · 3371 阅读 · 0 评论 -
pandas.cut,将一系列数据进行分组,对cut各参数的理解
# 导入模块import pandas as pdimport numpy as np# 使用 cut 的默认参数pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1, 4, 6, 10])""" 第1组:right 参数 """# 1) True:左开右闭,( , ]# 2) False:左闭右开,[ , )pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1, 4, 6, 10], right=True)pd.cu原创 2022-05-12 18:42:14 · 1471 阅读 · 0 评论 -
如何通过xlwings直接将DataFrame去行列标题写入工作表
将 DataFrame 去行、列标题写入工作表中原创 2022-03-19 14:15:00 · 3000 阅读 · 2 评论 -
pathlib.Path模块下的glob、rglob,glob模块下的glob、iglob
glob.glob(*)、glob.glob(**)、glob.iglob(*)、glob.iglob(**)Path.glob(*)、Path.glob(**)、Path.rglob(*)、Path.rglob(**)原创 2022-02-13 00:10:46 · 18137 阅读 · 0 评论 -
pandas,将DataFrame的列逆序排列
import pandas as pdimport numpy as npdf=pd.read_excel("https://www.gairuo.com/file/data/dataset/team.xlsx")# df.sample(5) # 随机读取5个数据df.sort_index(na_position="first")# 通过因子化 factorize,将列进行逆序排列# key:在排序前,对 index 执行的函数 df.sort_index(axis=1, key=lam原创 2021-12-26 17:39:27 · 6868 阅读 · 0 评论 -
pandas,获取上月最后一天,及相关时间处理
pandas中,获取相关日期的方式原创 2021-12-05 17:24:44 · 2135 阅读 · 0 评论 -
pandas,构造MultiIndex的四种方法:from_tuples、from_arrays、from_product、from_frame
1、from_tuples:通过 “元组对” 构造MultiIndex""" 一对元组,为一个索引 """tuples = [(1, 'red'), (1, 'blue'), (2, 'red'), (2, 'blue')]pd.MultiIndex.from_tuples(tuples, names=('number', 'color'))2、from_arrays:通过 “列表元素的组合” 构造MultiIndex""" 列中表的元素,按位置 对应组合,形成索引 """arrays原创 2021-03-26 17:33:44 · 5064 阅读 · 5 评论 -
ImportError: Could not load requested Qt binding. Please ensure that PyQt4 >= 4.7 or PySide >= 1.0.3
在 Python Console 中输入%pylab时,报错:ImportError: Could not load requested Qt binding.Please ensure thatPyQt4 >= 4.7 or PySide >= 1.0.3 is available,and only one is imported per session.解决办法:使用命令 pip install pyqt5,安装 PyQt...原创 2021-03-25 13:10:54 · 1143 阅读 · 0 评论 -
对pandas之resample函数中的label参数和closed参数的理解
1、resample 函数的作用,是将时间序列,按一定频率进行分割DataFrame.resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention='start', kind=None, loffset=None, limit=None, base=0, on=None, le原创 2021-03-12 17:41:51 · 2364 阅读 · 0 评论 -
pandas 取数汇总
df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], index=['cobra', 'viper', 'sidewinder'], columns=['max_speed', 'shield'])df # max_speed shield # cobra 1 2 # viper 4 5 # sidewinder 7原创 2021-03-12 14:57:13 · 1028 阅读 · 0 评论 -
使用 pandas.pivot 构造透视表时,报错:ValueError: Index contains duplicate entries, cannot reshape
pivot 语法DataFrame.pivot(index=None, columns=None, values=None)报错原因: index & column 构成的组合中存在重复数据原创 2021-03-06 14:53:34 · 24765 阅读 · 3 评论 -
对 pandas.first 中 offset 参数的理解
语法:DataFrame.first(offset)对参数的理解:1、offset 指的是,相对于 DataFrame 中第一个数据的偏移量2、offset 仅针对于 DatetimeIndex 有效案例: i = pd.date_range('2018-04-01', periods=6, freq='2D') ts = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6]}, index=i) ts# A# 2018-04-01 1原创 2021-03-06 14:01:14 · 1037 阅读 · 0 评论 -
pandas 替换两列的数据
data = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})# data# A B# 0 1 4# 1 2 5# 2 3 6data[["A", "B"]] = data[["B", "A"]]# data# A B# 0 4 1# 1 5 2# 2 6 3原创 2021-03-05 14:09:23 · 614 阅读 · 0 评论 -
python pandas.merge_ordered 用法及代码示例
1、语法pandas.merge_ordered(left, right, on=None, left_on=None, right_on=None, left_by=None, right_by=None, fill_method=None, suffixes=('_x', '_y'), how='outer')2、参数解释(1)left: 用于连接的 左DataFrame(2)right: 用于连接的 右原创 2021-02-24 15:30:04 · 1356 阅读 · 0 评论 -
pandas.melt 实现的功能
1、第一步:获取数据源test = pd.read_excel(r"C:\Users\admin\Desktop\工作簿1.xlsm")test2、使用 pandas.melt 实现“列转行”test.melt(['板块', '部门'], ["数量", "金额", "优惠"], var_name="变量", value_name="值")原创 2021-02-23 15:20:08 · 147 阅读 · 0 评论 -
如何使用 pandas 中的 melt 函数实现透视表功能
背景:如何使用 melt 函数,将图一的数据源生成图二中数据透视表图一图二第一步: 获取数据源df = pd.read_excel(r"D:\工作\数据类\11每日发货\发货明细账.xlsm", "发货明细")df第二步: 获取发货数量、业务含税金额、财务销售收入(预估) 的透视表。把 “所属板块”, “部门” 作为“行标签”,对 值“发货数量” 求和df_发货数量 = pd.melt(df, ["所属板块", "部门"], ["发货数量"], value_name="数量")df_原创 2021-02-23 13:21:11 · 425 阅读 · 0 评论 -
使用 pandas 的 apply 函数,合并多行为一行
import stringdata = pd.DataFrame({"序号": [1, 1, 3, 4, 1, 3, 3, 2, 3, 4], "值": list(string.ascii_lowercase[:10])})data# Out[109]: # 序号 值# 0 1 a# 1 1 b# 2 3 c# 3 4 d# 4 1 e# 5 3 f# 6 3 g# 7 2 h# 8原创 2020-09-23 14:56:24 · 1289 阅读 · 0 评论 -
np.array 与 np.asarray 的区别
arr = np.random.randint(5, size=(3, 2))arr# array([[4, 4],# [2, 0],# [2, 1]])arr1 = np.array(arr)arr2 = np.asarray(arr)arr[1, 1] = 100arr# array([[ 4, 4],# [ 2, 100],# [ 2, 1]])arr1# array([[4, 4],#原创 2020-05-28 18:10:16 · 447 阅读 · 0 评论 -
对numpy的min、max函数的理解
1、生成数据源arr = np.random.randint(5, 30, (3, 3, 3))arr2、min函数的使用详解2.1、获取所有数据中的最小值arr.min()2.2、获取第一个维度的最小值arr.min(axis=0)# array([[ 5, 9, 18], [[每一组的 第1行第1列, 每一组的 第1行第2列, 每一组的 第1行第3列# [ 6, 8, 13], 每一组的 第2行第1列, 每一组的 第2行第2列, 每一组的 第2行原创 2020-05-28 17:23:57 · 3667 阅读 · 0 评论 -
正则表达式中,使用 {}(大括号) 限制匹配次数时的坑
import reimport pandas as pddata = {'Dave': 'dave@google.con', "Steve": 'steve@gmamil.com', "Rob": "rob@gmail.com", "Wes": np.nan}data = pd.Series(data)dataOut[68]: Dave dave@goog...原创 2020-04-02 10:07:50 · 1234 阅读 · 0 评论 -
如何在pandas中使用正则表达式处理数据——巧用replace函数中的repl参数
1、获取数据源可以下载下来后,从 csv 读取;或直接从该网址获取,但是网速较差时,直接从网址获取可能会报错path = r"D:\01_学习相关\01_编程学习\02_Python\08_数据分析\00_datas\Online_Retail.csv" # 本地存放 csv 的绝对路径online_rt = pd.read_csv(path)online_rt # Out[526]: # InvoiceNo,StockCode,Description,Quantity,Inv原创 2020-05-21 16:45:21 · 9695 阅读 · 1 评论 -
用pandas读取github在线数据。
方式一:import pandas as pdurl = "https://raw.githubusercontent.com/hunkim/DeepLearningZeroToAll/master/data-03-diabetes.csv"data = pd.read_csv(url,header=None)方式二:import pandas as pdimport ioimport requestsurl = "https://raw.githubusercontent.com/h转载 2020-05-20 11:02:22 · 1194 阅读 · 0 评论 -
关于pandas之apply的使用错误情况,如‘str’ object is not callable和unhashable type
“原 DataFrame” 与 “使用了 groupby 之后的分组 DataFrame",在调用 apply 方法时,有些许差异df = pd.DataFrame([[j for j in range(1, 5)] for i in range(5)], index=list("ABBDA"))df# Out[227]: # 0 1 2 3# A 1 2 3 4# B 1 2 3 4# B 1 2 3 4# D 1 2 3 4# A 1 2原创 2020-05-18 19:00:00 · 1258 阅读 · 0 评论 -
以固定分隔符连接 DataFrame 的某几列,如用 DataFrame 的某几列数据生成时间列
import numpy as npimport pandas as pd""" 目的:使用 df 的 “Year”、“Month”、“Day” 三列生成一个时间列 """df = pd.DataFrame({"Year": ['72', '66', '62', '70', '73', '74', '64', '75', '78', '78'], "Month": ['5', '7', '5', '4', '1', '11', '1', '2', '10', '7'],原创 2020-05-14 16:49:33 · 483 阅读 · 0 评论 -
如何使用pandas实现excel中的数据分列功能
# 创建一个以 “,”(英文逗号)为分隔符的 Seriesdf = pd.DataFrame([str([np.random.randint(j, j*10 + 1) for i in range(1, 6)])[1:-1] for j in range(1, 11)],columns=[",".join(" ABCD")])df# ,A,B,C,D# 0 2, 2, 6, 9, 7# 1 15, 9, 14, 16, 11# 2 13, 20,原创 2020-05-14 09:23:01 · 3627 阅读 · 0 评论 -
对 pd.concat 的理解,以及报错 ValueError: Shape of passed values is 。。。的解决办法
""" pd.concat:将多个 pandas 对象,按行索引或列索引进行连接 """f = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))# f# A B# 0 1 2# 1 3 4f1 = pd.concat([f, pd.DataFrame({"A": 20, "B": 40}, index=[0])])# f1# A B# 0 1 2# 1 3 4# 0 20 40pd原创 2020-05-13 10:40:14 · 12408 阅读 · 0 评论 -
pandas之重命名轴索引(reindex、reindex_like、rename;set_index、reset_index;set_axis)
reindex:重命名索引,如果新索引不存在原索引中,默认填充 NaN。 一般用于将已经存在的索引进行重排。没有 inplace 选项,即无法直接在 df 内部修改>>> index = ['老王', '老张', '老何', '老魏', '老许']>>> df = pd.DataFrame({'age': [24, 18, 36, 67, 38],... ...原创 2020-04-03 15:41:10 · 6056 阅读 · 1 评论 -
pandas 之 combine 详解,如果 df 不存在、other 中存在,会如何处理
语法:df.combine(other: 'DataFrame', func, fill_value=None, overwrite=True) 举例:df1 = pd.DataFrame({'A': [1, 1], 'B': [4, 4]})df2 = pd.DataFrame({'B': [3, 3], 'C': [1, 1], }, index=[1, 2])df1Out[7...原创 2020-04-02 17:33:21 · 1285 阅读 · 0 评论 -
pandas 之 pivot_table 与 pivot 的区别
1、pivot:通过指定的索引和列对数据进行重塑,无法聚合语法:DataFrame.pivot(self, index=None, columns=None, values=None)构建一个 DataFrame 数据df = pd.DataFrame({'foo': ['one', 'one', 'one', 'two', 'two', ...原创 2020-03-28 17:16:25 · 6599 阅读 · 0 评论 -
pandas之stack与unstack
stack: 将列转行。转哪个层级由参数 level 决定,该 level 指的是 columns 所对应的层级import numpy as npimport pandas as pdfrom pandas import Dataframeindex = pd.MultiIndex.from_arrays([['a', 'a', 'b', 'b'], [1, 2, 1, 2]])co...原创 2020-03-26 17:30:35 · 196 阅读 · 0 评论