pandas基本功

导入csv数据

df =pd.read_csv("Counts.csv", header=0)
df.head()

切片

df['name']   # 选取一列,成一个series   
df[['name']]  # 选取一列,成为一个dataframe     
df[['name','gender']] #选取多列,多列名字要放在list里    
df[0:]  #第0行及之后的行,相当于df的全部数据,注意冒号是必须的    
df[:2]  #第2行之前的数据(不含第2行)    
df[0:1] #第0行    
df[1:3] #第1行到第2行(不含第3行)    
df[-1:] #最后一行    
df[-3:-1] #倒数第3行到倒数第1行(不包含最后1行即倒数第1行,这里有点烦躁,因为从前数时从第0行开始,从后数就是-1行开始,毕竟没有-0)  

loc

# df.loc[index, column_name],选取指定行和列的数据    
df.loc[0,'name'] # 'Snow'    
df.loc[0:2, ['name','age']]          #选取第0行到第2行,name列和age列的数据, 注意这里的行选取是包含下标的。    
df.loc[[2,3],['name','age']]         #选取指定的第2行和第3行,name和age列的数据    
df.loc[df['gender']=='M','name']     #选取gender列是M,name列的数据    
df.loc[df['gender']=='M',['name','age']] #选取gender列是M,name和age列的数据    

iloc

df.iloc[0,0]        #第0行第0列的数据,'Snow'    
df.iloc[1,2]        #第1行第2列的数据,32    
df.iloc[[1,3],0:2]  #第1行和第3行,从第0列到第2列(不包含第2列)的数据    
df.iloc[1:3,[1,2]   #第1行到第3行(不包含第3行),第1列和第2列的数据  

索引

# 选择单独的一列,返回 Serires,与 df.A 效果相当。
df['A']
 
# 位置切片
df[0:3]
 
# 索引切片
df['20130102':'20130104']
 
# 通过标签选择
df.loc[dates[0]]
 
# 对多个轴同时通过标签进行选择
df.loc[:,['A','B']]
 
# 获得某一个单元的数据
df.loc[dates[0],'A']
# 或者
df.at[dates[0],'A']# 速度更快的做法
 
# 通过位置进行选择
df.iloc[3]
 
# 切片
df.iloc[3:5,0:2]
 
# 列表选择
df.iloc[[1,2,4],[0,2]]
 
# 获得某一个单元的数据
df.iloc[1,1]
# 或者
df.iat[1,1]# 更快的做法
 
# 布尔索引
df[df.A > 0]
 
# 获得大于零的项的数值
df[df > 0]
 
# isin 过滤
df2[df2['E'].isin(['two','four'])]

赋值

# 新增一列,根据索引排列
s1 =pd.Series([1,2,3,4,5,6], index=pd.date_range('20130102', periods=6))
df['F']=s1
 
# 缺省项
# 在 pandas 中使用 np.nan 作为缺省项的值。
df1 =df.reindex(index=dates[0:4], columns=list(df.columns)+['E'])
df1.loc[dates[0]:dates[1],'E']=1
 
# 删除所有带有缺省项的行
df1.dropna(how='any')
 
# 填充缺省项
df1.fillna(value=5)
 
# 获得缺省项的布尔掩码
pd.isnull(df1)

观察

# 观察开头的数据
df.head()
 
# 观察末尾的数据
df.tail(3)
 
# 显示索引
df.index
 
# 显示列
df.columns
 
# 显示底层 numpy 结构
df.values
 
# DataFrame 的基本统计学属性预览
df.describe()
"""
  A  B  C  D
count 6.000000 6.000000 6.000000 6.000000 #数量
mean 0.073711 -0.431125 -0.687758 -0.233103 #平均值
std 0.843157 0.922818 0.779887 0.973118 #标准差
min -0.861849 -2.104569 -1.509059 -1.135632 #最小值
25% -0.611510 -0.600794 -1.368714 -1.076610 #正态分布 25%
50% 0.022070 -0.228039 -0.767252 -0.386188 #正态分布 50%
75% 0.658444 0.041933 -0.034326 0.461706 #正态分布 75%
max 1.212112 0.567020 0.276232 1.071804 #最大值
"""
 
# 转置
df.T
 
# 根据某一轴的索引进行排序
df.sort_index(axis=1, ascending=False)
 
# 根据某一列的数值进行排序
df.sort(columns='B')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值