python之pandas基本操作

38 篇文章 2 订阅

pandas用法速查:
https://www.toutiao.com/i6758024966521750030/?tt_from=weixin&utm_campaign=client_share&wxshare_count=1&timestamp=1573606334&app=news_article&utm_source=weixin&utm_medium=toutiao_android&req_id=2019111308521401002607721726B20283&group_id=6758024966521750030

索引数据

loc:通过行标签索引数据

iloc:通过行号索引行数据

ix:通过行标签或行号索引数据(基于loc和iloc的混合)被废弃
在这里插入图片描述


#设置实验数据
import pandas as pd  
data = [[1,2,3],[4,5,6]]  
index = [0,1]  
columns=['a','b','c']
#加载数据集
df = pd.DataFrame(data=data, index=index, columns=columns)
#显示前几行
df.head
# 1. loc——通过行标签索引行数据,查看某行
df.loc[1]
df.loc[0]


# 1.2 loc[‘d’]表示索引的是第’d’行(index 是字符)
import pandas as pd  
data = [[1,2,3],[4,5,6]]  
index = ['d','e']  
columns=['a','b','c']  
df = pd.DataFrame(data=data, index=index, columns=columns)
#更改行标签 行索引
#接下来是把行标签[0, 1, 2]改成['a', 'b', 'c'],则成这样了
df.index = ['a','b','c']
#同样地,把列标签[0, 1, 2, 3]改成['A', 'B, 'C', 'D'],则成这样了\
#更改列标签
df.columns = ['A','B','C','D']

#查看一行数据 
df.loc['d'] 
# 1.4 loc可以获取多行数据
df.loc['d':]  
# 1.5 loc扩展——索引某行某列  查找某行某列
df.loc['d',['b','c']]

# 1.6 loc扩展——索引某列  查询C列
df.loc[:,['c']] 

# 2. iloc——通过行号获取行数据 
# 2.1 想要获取哪一行就输入该行数字 
df.iloc[1] 
# 2.3 同样通过行号可以索引多行  查找多行
df.iloc[0:] 
#查找 第0列和第3列
df.iloc[:,[0,3]]
#选取某几行数据 前几行数据
df.iloc[0:3]
查出前5行
dfoff.iloc[:5]
#输出第六列的前三行
dfoff.iloc[:3,6]
#取出中间某几列
train_orignal_01=train_orignal.iloc[:,3:8]

可参考此文章
https://blog.csdn.net/qq_27782503/article/details/89066572#4_13_269

############################################################
#日期类操作
date(int(dfoff['Date_received'].iloc[1][0:4]), int(dfoff['Date_received'].iloc[1][4:6]), 
#根据日期来取星期
int(dfoff['Date_received'].iloc[1][6:8])).weekday()+1
#日期格式转换
dfoff.iloc[:1,6]
# 20160217.0
pd.to_datetime(dfoff.iloc[:1,6], format='%Y%m%d')
#2016-02-17
#求取日期差
pd.to_datetime(dfoff.iloc[:1,6], format='%Y%m%d') - pd.to_datetime(dfoff.iloc[1:2,5], format='%Y%m%d')
# 最后是这种样子 '2016-02-17' - '2016-05-28'

#判断是否大于 15天
td = pd.to_datetime(row['Date'], format='%Y%m%d') - pd.to_datetime(row['Date_received'], format='%Y%m%d')
td <= pd.Timedelta(15, 'D')

###########################################################
#函数应用
# weekday_type :  周六和周日为1,其他为0   lambda 不断循环
dfoff['weekday_type'] = dfoff['weekday'].apply(lambda x: 1 if x in [6,7] else 0)
#if判断实现
def getWeekday(row):
   if row == 'null':
       return row
   else:
       return date(int(row[0:4]), int(row[4:6]), int(row[6:8])).weekday() + 1

dfoff['weekday'] = dfoff['Date_received'].astype(str).apply(getWeekday)

#数据复制  筛选复制
df = dfoff[dfoff['label'] != -1].copy()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值