为了账号安全,请及时绑定邮箱和手机立即绑定

用pandas如何筛选出想要的数据。

/ 猿问

用pandas如何筛选出想要的数据。


https://img1.sycdn.imooc.com/5bad7d8f0001d29915180704.jpg

我现在经过初步筛选后,得到上面样子的csv,但是我还需要进一步筛选。原则是:

  1. 如果Unit列的值相同,就去比较Start Time列的值,只Start Time最大的,比如上图中画了框的行,

    bot002XC 有四行,它对应的Start Time 列的值有两种,2018/9/14  0:52:00,2018/9/14  0:54:00,

    我只需要保留2018/9/14 0:54:00对应的行,

  2. 当这些行都被筛选出来后,我想在保存这些数据,写入新的csv的同时,在Measurements Description列,写入一些信息:

    值 = 对应的mainitem +subitem +result+(limit_min,limit_max)

    才接触pandas,搞得晕头转向的,请大家帮忙看看,该怎么写,谢谢大家。

查看完整描述

1 回答

?
MyFray

我的思路是这样的:

import pandas as pd

df = pd.read_csv("文件.csv")
# 先按照Start Time降序给df排序
df.sort_values(['Start Time'], ascending=[False], inplace=True)
# 去掉重复的,unit, mainitem, subitem一样的列只保留第一个
df.drop_duplicates(subset = ["Unit", "mainitem", "subitem"], inplace=True)

# 把类型都转化为字符串
df = df.astype("str")
df['measurement description'] = df['mainitem'] + " " + df['subitem'] + 
          df['result'] + "(" + df['limit min'] + df['limit max'] + ")"
df.to_csv("文件名.csv")

经验也不是很丰富,在这里抛砖引玉了。


查看完整回答
反对 回复 2018-11-17

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信