前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Numpy/Pandas 技巧语法

Numpy/Pandas 技巧语法

作者头像
嘉美伯爵
发布2021-01-18 11:07:19
3280
发布2021-01-18 11:07:19
举报
文章被收录于专栏:微服务架构日记

Pandas

  • 单独索引

pd的默认索引是从零开始的数字,把一列设置为新的索引可以更便于操作

  • 无header

有的表格可能没有header,pandas默认第一行为header,这种情况pandas会读取不到第一行数据

代码语言:javascript
复制
data2pd.read_csv("test.cvs",header=None)#不把第一行作列属性
  • set_index
代码语言:javascript
复制
# 将列head变为索引,这样可以很方便的提取时间
df = data.set_index('故障发生时间')
df1 = df['2020-03-01':'2020-03-29']
  • 多层索引

index 和 columns 索引互转

  • pandas多个单条Dataframe合并
代码语言:javascript
复制
df2 = pd.DataFrame()
writer = pd.ExcelWriter(f'hello.xlsx', engine='xlsxwriter', mode='wa')

for excel in file_list:
    alarm_data = pd.read_excel(os.path.join(BASE, excel))
    alarm_data.loc[:, '省份'] = alarm_data['省份'].apply(lambda x: str(x).rstrip('省').rstrip('市'))
    aone = alarm_data['网管告警id']
    atwo = alarm_data['省份']
    athree = alarm_data['地市']
    afour = alarm_data['告警清除时间']
    afive = alarm_data['告警标题']

    for line in list(zip(one, two, three, five, four, index)):
        fil = alarm_data[
            (aone == line[0]) & (atwo == line[1]) & (athree == line[2]) & (afive == line[3]) & (afour == line[4])]
        if np.any(fil):
            one_fil = fil.iloc[0:1, :]
            df2 = pd.concat([df2, one_fil])

    print(df2)

Numpy

  • np.all/np.any

该方法和Python的all/any一样,但Python只能处理一维的情况,该方法的作用是在处理一些返回可能为空的情况,很好用

代码语言:javascript
复制
# 避免出现模棱两可的情况
# https://blog.csdn.net/weixin_39449466/article/details/81008505
# any 可迭代对象,有一个为True,则返回True,any([])返回False,可迭代对象若出现0,表示False
for line in list(zip(one, two, three, five, four, index)):
    fil = alarm_data[(aone == line[0]) & (atwo == line[1]) & (athree == line[2]) & (afive == line[3]) & (afour == line[4])]
    # 过滤的数据,可能为None,np.any([None])
    if np.any(fil):
        one_fil = fil.iloc[0:1, :]
        df2 = pd.concat([df2, one_fil])
# all 可迭代对象只有全为True才返回True,特列是np.all([]) 返回True
np.all([])
True
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Pandas
  • Numpy
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档