2025年6月4日 星期三 乙巳(蛇)年 三月初八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

Python Pandas 常用方法

时间:04-01来源:作者:点击数:70

1、Pandas常用方法

工作中经常用到pandas,所以现在有时间就加点内容,以便查阅!

  • import numpy as np
  • import pandas as pd
  • # 生成一个DataFrame数据
  • dates = pd.date_range('20191201',periods=5)
  • df = pd.DataFrame(np.random.randn(5, 5),index=dates,columns=list('ABCDE'))
  • df.iloc[1,0] = df.iloc[0,0]
  • df.iloc[1,1] = df.iloc[0,1]
  • print(df)
  • """
  • A B C D E
  • 2019-12-01 -0.400561 1.916244 -0.027848 1.726683 -0.825451
  • 2019-12-02 -0.400561 1.916244 -0.341435 -2.341047 -2.216682
  • 2019-12-03 1.165244 -0.489673 -0.479814 0.360694 1.670459
  • 2019-12-04 -0.339122 0.169905 -0.970991 -0.303687 1.663149
  • 2019-12-05 0.752542 0.989045 0.724454 -0.034715 1.240655
  • """
  • # 修改列名
  • df.rename(columns={'A':'a', 'B':'b'}, inplace = False)
  • """
  • a b C D E
  • 2019-12-01 -0.905754 0.079627 0.770437 0.982166 -0.071950
  • 2019-12-02 -0.905754 0.079627 2.535105 1.070351 -0.852405
  • 2019-12-03 0.323004 -2.003110 -1.154842 0.224212 0.513301
  • 2019-12-04 1.234087 1.462279 1.102835 -0.498354 -2.438021
  • 2019-12-05 0.111522 0.265316 -0.605126 -0.106813 0.672281
  • """
  • # 删除指定列
  • df.drop(df.columns[[2,4]], axis=1, inplace=False) # 删除3、5列
  • """
  • A B D
  • 2019-12-01 -0.400561 1.916244 1.726683
  • 2019-12-02 -0.400561 1.916244 -2.341047
  • 2019-12-03 1.165244 -0.489673 0.360694
  • 2019-12-04 -0.339122 0.169905 -0.303687
  • 2019-12-05 0.752542 0.989045 -0.034715
  • """
  • df.drop(df.index[[2,4]], axis=0, inplace=False) # 删除3、5行
  • """
  • A B C D E
  • 2019-12-01 -0.400561 1.916244 -0.027848 1.726683 -0.825451
  • 2019-12-02 -0.400561 1.916244 -0.341435 -2.341047 -2.216682
  • 2019-12-04 -0.339122 0.169905 -0.970991 -0.303687 1.663149
  • """
  • # 去重(去除重复)
  • # 以A、B列匹配去重、保留第一行
  • df.drop_duplicates(subset=['A','B'],keep='first',inplace=False)
  • """
  • A B C D E
  • 2019-12-01 -0.400561 1.916244 -0.027848 1.726683 -0.825451
  • 2019-12-03 1.165244 -0.489673 -0.479814 0.360694 1.670459
  • 2019-12-04 -0.339122 0.169905 -0.970991 -0.303687 1.663149
  • 2019-12-05 0.752542 0.989045 0.724454 -0.034715 1.240655
  • """
  • # 以A、B列匹配去重、保留最后一行
  • df.drop_duplicates(subset=['A','B'],keep='last',inplace=False)
  • """
  • A B C D E
  • 2019-12-02 -0.400561 1.916244 -0.341435 -2.341047 -2.216682
  • 2019-12-03 1.165244 -0.489673 -0.479814 0.360694 1.670459
  • 2019-12-04 -0.339122 0.169905 -0.970991 -0.303687 1.663149
  • 2019-12-05 0.752542 0.989045 0.724454 -0.034715 1.240655
  • """
  • # 分组,以A类分组,获取分数最高的前两行数据
  • df = pd.DataFrame({'A':['a','a','b','b','a','a','b'],'B':[91,92,93,94,95,96,97]})
  • print(df)
  • """
  • A B
  • 0 a 91
  • 1 a 92
  • 2 b 93
  • 3 b 94
  • 4 a 95
  • 5 a 96
  • 6 b 97
  • """
  • df.sort_values(['A','B'],ascending=[True,False], inplace=True)
  • df = df.groupby('A').head(2)
  • print(df)
  • """
  • A B
  • 5 a 96
  • 4 a 95
  • 6 b 97
  • 3 b 94
  • """
  • # 时间戳转换为时间
  • df = pd.DataFrame([i for i in range(1551871800,1551871805)],columns=['时间'])
  • """
  • 时间
  • 0 1551871800
  • 1 1551871801
  • 2 1551871802
  • 3 1551871803
  • 4 1551871804
  • """
  • pd.to_datetime(df['时间'], unit='s', origin=pd.Timestamp('1970-01-01')) # 时间戳转换为时间一
  • df['时间'].map(lambda x: datetime.datetime.fromtimestamp(x)) # 时间戳转换为时间二
  • """
  • # unit='s' 代表单位是秒,origin 代表从这个时间开始加上时间戳的那么多秒
  • 0 2019-03-06 11:30:00
  • 1 2019-03-06 11:30:01
  • 2 2019-03-06 11:30:02
  • 3 2019-03-06 11:30:03
  • 4 2019-03-06 11:30:04
  • """
  • # 读取数据
  • # read_excel 方法的部分参数
  • """
  • header:指定作为列名的行,默认0,即取第一行的值为列名。数据为列名行以下的数据;若数据不含列名,则设定 header = None。
  • names:默认为None,要使用的列名列表,如不包含标题行,应显示传递header=None。
  • index_col:指定列为索引列,默认None列(0索引)用作DataFrame的行标签。
  • usecols:int或list,默认为None。
  • dtype:列的类型名称或字典,默认为None。数据或列的数据类型。例如{'a':np.float64,'b':np.int32}使用对象保存存储在Excel中的数据而不解释dtype。如果指定了转换器,则它们将应用于dtype转换的INSTEAD。
  • skiprows:省略指定行数的数据,从第一行开始。例如:skiprows=1 则省略第一行从第二行开始
  • skipfooter:省略指定行数的数据,从尾部数的行开始。
  • dtype:字典类型{'列名1':数据类型,‘列名’:数据类型},设定指定列的数据类型。
  • """
  • # 保存数据
  • # to_csv方法的部分参数
  • """
  • path_or_buf:字符串或文件句柄,默认为无
  • 文件路径或对象,如果提供None,则结果以字符串形式返回。
  • sep:字符,默认为“,”
  • 输出文件的字段定界符。
  • na_rep:字符串,默认''
  • 缺少数据表示
  • float_format:字符串,默认为无
  • 浮点数格式字符串
  • header:布尔值或字符串列表,默认为True
  • 写出列名。如果给出了字符串列表,则假定它是列名的别名
  • index:布尔值,默认为True
  • 写行名(索引)
  • mode:str
  • Python写入模式,默认为“ w”
  • encoding:字符串,可选
  • 一个字符串,代表要在输出文件中使用的编码,在Python 2上默认为'ascii',在Python 3上默认为'utf-8'。
  • compression:字符串,可选
  • 表示要在输出文件中使用的压缩的字符串,允许的值为'gzip','bz2',仅当第一个参数是文件名时使用
  • line_terminator:字符串,默认为'n'
  • 在输出文件中使用的换行符或字符序列
  • chunksize:int或无
  • 一次写入的行
  • date_format:字符串,默认为None
  • 日期时间对象的格式字符串
  • """
  • df.to_excel('a.xlsx',index=False)
  • df.to_csv('a.csv',index=False,encoding='utf-8_sig') # encoding防止中文乱码
  • # 读取数据
  • df = pd.read_excel('a.xlsx')
  • df = pd.read_csv('a.csv', encoding='utf-8_sig', engine='python')

注:此代码只是个人根据当时的环境满足了当时的需求,记录下来用做后续参考!如有问题,请检查软硬件环境是否一致,由于时间精力有限,大部分未做详细环境描述。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门