pandas笔记

1、isin用法,可结合&、|使用>、==等:

df_isin = df[df['工单号'].isin([1, 2, 3])]

2、查询A列,修改B列

df[df['告警类型'] == '网络',  '业务线'] = '数据库' #查询列:告警类型,值为网络的目标,目标列:业务线的值改为‘数据库’

3、正则剔除匹配的数据

regx = '.*大数据分析平台.*(CPU|memory|Filesystem space)$'

df = df[~df['流程实例标题'].str.match(regx)]

4、指定位置插入列

df.insert(2, '是否超时', '哈哈') #第二列后插入列名为‘是否超时’, 值为‘哈哈 ’’

5、时间转换

df.to_datetime('2020-11-30 00:00:00,, format='%Y/%m/%d')

6、删除行列

df.drop('col1', axis=1) #axis=1表示删除列,axis=0表示删除行

7、ffill向下填充空值

col = ['A', 'B', 'C']

df[col].ffill()

8、去重

# 审批历时单位转换及重复数据筛选, 如:原始数据:[1, 2, 2, 3, 3]

a = df.drop_duplicates(subset=[filtername], keep='first') # 保留一条重复数据 结果: [1, 2, 3]

b = df.drop_duplicates(subset=[filtername], keep=False) # 所有重复数据都删掉 结果:[1]

c = a.append(b).drop_duplicates(subset=[filtername], keep=False) # 去除重复数据 结果:[2, 3]

9、筛选求和

df[df['工单号'] == 100]['任务时长'].sum() #列:工单号为100的目标,对列:任务时长求和

10、迭代

for index, row in df.iterrows():

  print(index, row['工单号'])

11、map结合lambda

data["gender"] = data["gender"].map({"":1, "":0}) #列男改为1,列女改为0

df['处理时长'].map(lambda x: x/(60*60)) #列处理时长所有值进行lambda表达式操作

 12、重命名列

df.rename(columns={'审批历史': '累计时长'})

 

posted @ 2020-11-30 16:38  Fmaj-7  阅读(131)  评论(0)    收藏  举报