EMS运行数据处理-pandas降采样、合并多表
创始人
2024-05-10 21:47:03
0

文章目录

    • read_csv读取出错。因为多余异常列数据
      • 解决方法
    • pd.to_datetime(df['time_key'])但time_key出现不能转换的序列
      • 解决方法
    • pandas 提取时间序列年、月、日
      • 方法一:pandas.Series.dt.month() 方法提取月份
      • 方法二:strftime() 方法提取年、月、日
      • 方法三:pandas.DatetimeIndex.month提取月份
    • pd.concat()多表合并
      • 示例
    • df.groupby()分组

read_csv读取出错。因为多余异常列数据

在读取数据集的时候出现报错。检查才发现是出现是
在这里插入图片描述

ParserError: Error tokenizing data. C error: Expected 16 fields in
line 14996, saw 29

解决方法

由于我这边数据集够多。选择直接这种数据就舍弃跳过

  df = pd.read_csv(filePath, on_bad_lines='warn')

on_bad_lines 指定遇到错误行(字段太多的行)时要执行的操作。允许的值为:

  1. “error”,遇到错误行时引发异常。
  2. “warn”,遇到错误行时发出警告并跳过该行。
  3. “skip”,在遇到错误行时跳过错误行而不引发或警告。

pd.to_datetime(df[‘time_key’])但time_key出现不能转换的序列

dateutil.parser._parser.ParserError: Unknown string format: ‘202’2022-01-03 08:22:09.481’
在这里插入图片描述

解决方法

把它挑出来剔除

df['time_key'] = pd.to_datetime(df['time_key'],errors='coerce')  # 不加format也行,pandas自动推断日期格式,format='%Y-%m-%d %H:%M:%S'
df.dropna(inplace=True)    #剔除

errors三种取值,‘ignore’, ‘raise’, ‘coerce’,默认为raise。

  1. raise,则无效的解析将引发异常
  2. coerce,那么无效解析将被设置为NaT(not a time ,和NaN一样是空值)
  3. ignore,那么无效的解析将返回原值

to_datetime官网解释

pandas 提取时间序列年、月、日

方法一:pandas.Series.dt.month() 方法提取月份

应用于 Datetime 类型的pandas.Series.dt.month() 方法分别返回系列对象中Datetime条目的年和月的numpy数组。
注意:如果该列不是 Datetime 类型,则应首先使用 to_datetime() 方法将该列转换为 Datetime类型,pd.to_datetime()

  • 获取其他时间方法
dt.year、dt.month、dt.day:获取年、月、日;
dt.hour、dt.minute、dt.second、dt.microsecond:获取时、分、秒、微秒;

示例

import pandas as pdlist_of_dates = ['2019-11-20', '2020-01-02', '2020-02-05','2020-03-10','2020-04-16']
employees=['Hisila', 'Shristi','Zeppy','Alina','Jerry']
df = pd.DataFrame({'Joined date': pd.to_datetime(list_of_dates)}, index=employees)df['Year'] = df['Joined date'].dt.year
df['Month'] = df['Joined date'].dt.month
print(df)

请添加图片描述

方法二:strftime() 方法提取年、月、日

strftime() 方法使用 Datetime,将格式代码作为输入,并返回表示输出中指定的特定格式的字符串。使用%Y%m 作为格式代码来提取年份和月份。

df['year'] = df['Joined date'].dt.strftime('%Y')
df['month'] = df['Joined date'].dt.strftime('%m')
df['Day'] = df['Joined date'].dt.strftime('%d')

在这里插入图片描述

方法三:pandas.DatetimeIndex.month提取月份

通过检索 pandas.DatetimeIndex 对象的月份属性的值类,从 Datetime 列中提取月份。
此时,datatimeDataFrame的索引,时间类型的索引。比非时间索引类型的时间类型列,在抽取年月的时候,少个dt。

df['year'] = pd.DatetimeIndex(df['Joined date']).year
df['month'] = pd.DatetimeIndex(df['Joined date']).month

在这里插入图片描述

pd.concat()多表合并

参数:

concat(objs, *, axis=0, join='outer', ignore_index=False, 
keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)

参数介绍:

  1. axis=0代表index,匹配列名,往下拼接排列;axis=1代表columns,拼接生成新列,索引不变。( 默认axis=0)
  2. objs:需要连接的对象集合,一般是列表或字典;
  3. join:参数为outer(默认拼接方式,并集合并)或inner(交集合并);
  4. ignore_index=True:重建索引,默认是False

示例

import pandas as pdlist_of_dates = ['2019-11-20', '2020-01-02', '2020-02-05','2020-03-10','2020-04-16']
employees=['Hisila', 'Shristi','Zeppy','Alina','Jerry']
df = pd.DataFrame({'Joined date': pd.to_datetime(list_of_dates)}, index=employees)
pd.concat([df, df]) #根据列名匹配后,往下拼接排列)

在这里插入图片描述

pd.concat([df,df],axis=1,join='inner')

请添加图片描述

df.groupby()分组

df_new=df.loc[df['month']==1] 
df_new.groupby(df_new.index.month).mean()  #按时间序列中的月份求各列的均值.hour,day同理

在这里插入图片描述

相关内容

热门资讯

捷豹安卓系统车载,捷豹安卓系统... 哇,你有没有想过,当你的手机和汽车融为一体,会是怎样的体验呢?想象你正驾驶着你的捷豹,车窗外的风景如...
安卓1到10系统,安卓1.0至... 你有没有想过,手机里的安卓系统就像是我们生活中的好朋友,从青涩的少年成长为稳重的青年呢?从安卓1.0...
安卓8.0停用系统应用,提升使... 你知道吗?最近安卓系统又来了一次大动作,那就是安卓8.0系统开始停用一些系统应用了。这可真是让人有点...
安卓系统修改mtu值,轻松提升... 你有没有想过,你的安卓手机其实是个小小的电脑呢?它里面藏着许多可以自定义的秘密功能,就像修改MTU值...
安卓平板改window系统,探... 你有没有想过,你的安卓平板其实可以摇身一变,变成一个Windows系统的电脑呢?没错,就是那种可以运...
时空猎人安卓苹果系统,探索无尽... 你知道吗?最近在手机游戏圈里,有一款叫做《时空猎人》的游戏可是火得一塌糊涂呢!不管是安卓用户还是苹果...
安卓9.0系统的电视,新一代电... 亲爱的读者们,你是否也像我一样,对科技新玩意儿充满好奇?今天,我要和你聊聊一个让人眼前一亮的话题——...
小pc安装安卓系统,轻松安装安... 你有没有想过,你的小PC也能变身成为安卓系统的超级玩家呢?没错,就是那个平时默默无闻的小家伙,现在也...
高通备份安卓系统,全方位数据安... 你知道吗?在这个科技飞速发展的时代,手机备份可是个不得不提的话题。尤其是对于安卓用户来说,选择一个靠...
谷歌安卓系统有多少,从诞生到全... 你有没有想过,那个无处不在的谷歌安卓系统,究竟在全球有多少用户呢?它就像一个神秘的数字,每天都在悄悄...
fc黄金传说安卓系统,畅享复古... 你有没有听说最近安卓系统上的一款超酷的游戏——《FC黄金传说》?这款游戏可是让不少玩家都沉迷其中,今...
变小的我安卓系统,安卓系统演变... 你有没有发现,最近你的手机好像变轻了?没错,说的就是你,那个陪伴你多年的安卓系统。它悄无声息地进行了...
vivo安卓系统小彩蛋,体验科... 你知道吗?在vivo的安卓系统中,竟然隐藏着一些超有趣的小彩蛋!这些小彩蛋就像是在手机里埋下的宝藏,...
安卓系统如何强制重启,安卓系统... 手机突然卡壳了,是不是又该给它来个“大保健”了?没错,今天就来聊聊安卓系统如何强制重启。别小看这个看...
全民飞行团安卓系统,体验指尖上... 你知道吗?最近在手机游戏圈里,有个叫做“全民飞行团”的新星正在闪耀!这款游戏不仅吸引了无数玩家的目光...
安卓鸿蒙系统壁纸软件,壁纸软件... 亲爱的手机控们,你是否厌倦了单调的壁纸?想要给你的安卓手机换上充满科技感的鸿蒙系统风格壁纸?那就跟我...
安卓系统ram重新分区,提升系... 你有没有发现,你的安卓手机最近有点儿卡呢?别急,别急,今天就来给你揭秘如何给安卓系统的RAM来个重新...
迷你退出安卓系统了吗,转型新篇... 最近有没有发现你的手机上那个可爱的迷你退出图标突然不见了?别急,让我来给你揭秘迷你退出安卓系统了吗的...
华为优先使用安卓系统,打造自主... 你知道吗?最近科技圈里有个大动作,那就是华为宣布优先使用安卓系统。这可不是一个简单的决定,它背后可是...
安卓系统隐藏了设置,隐藏设置功... 你知道吗?安卓系统这个大宝藏里,竟然隐藏着一些不为人知的设置!是不是听起来就有点小激动呢?别急,今天...