Pandas基本用法

一、从csv文件中读取数据

    import pandas as pd

    df=pd.read_csv('e:/dianxin/a.csv')

    rows=df[0:2]                          #读取指定的 0-1行

    cols=df [ [ 'age' , ' name' ] ]   #读取指定列名的列

    cols.head()                           #读取指定列的前五行

 

    #块的选取

    df.ix[ 0:3, [ 'name' ] ]            #同时读取指定的 [0-3] 行和 'name' 列,此时第4行可被取到

loc、iloc的区别:

df = pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc'))

print(df)
   a   b   c
0   0   2   4
1   6   8  10
2  12  14  16
3  18  20  22
4  24  26  28
5  30  32  34
6  36  38  40
7  42  44  46
8  48  50  52
9  54  56  58

print(df.loc[0, 'a'])
print(df.loc[0:3, ['a', 'b']])  #取0,1,2,3行
print(df.loc[[1, 5], ['b', 'c']])
0
    a   b
0   0   2
1   6   8
2  12  14
3  18  20
    b   c
1   8  10
5  32  34

print(df.ix[0, 'a'])
print(df.ix[0:3, ['a', 'b']])
print(df.ix[[1, 5], ['b', 'c']])
同loc

print(df.iloc[1,1])
print(df.iloc[0:3, [0,1]])     #只取0,1,2行
print(df.iloc[[0, 3, 5], 0:2]) #只取0,1列
8
    a   b
0   0   2
1   6   8
2  12  14
    a   b
0   0   2
3  18  20
5  30  32

   #创建新的列 

    df [ ' total-cost' ]=df [ 'age' ] * df [ 'cost' ]

    df.head()

    

    #根据条件过滤

    df [ (df ['age'] >10) & (df ['cost'] < 70) ]

#以某个字段设置索引
df1=df.set_index('name')
df1=df1.sort_index()
#按姓名分组,计算cost的均值和总和,axis=1表示drop()函数去掉相应的列
df_mean=df.drop(['age','total_cost'],axis=1).groupby('name').mean().sort_values('cost',ascending=False)
print(df_mean)          #表示按姓名进行分组,把同姓名的cost值求平均值,并按降序进行排列
df_sum=df.drop(['age','total_cost'],axis=1).groupby('name').mean().sort_values('cost',ascending=False)
print(df_sum)
df.info()        #查看表的数据信息
df.describe()    #查看表的描述性统计信息
#按名字分组,计算相同名字的cost均值
grouped=df['cost'].groupby(df['name'])
print(grouped.mean())

#将name作为索引,分别求所有列的均值
print(df.groupby('name').mean())

#group()的size()函数返回一个含有各分组大小的series
print(df.groupby('name').size())

 

#获取dataframe的行数和列数

a=pd.DataFrame([[1,2,3],[4,5,6]])
print(a)
print('a的列数:',a.columns.size)
print('a的行数;',a.iloc[:,[0]].size)
print('a.ix[[0]]:\n',a.ix[[0]])
print('a.ix[[0]].values:',a.ix[[0]].values)
print('a.ix[[0]].values[0]:',a.ix[[0]].values[0])
print('a.ix[[0]].values[0][0]:',a.ix[[0]].values[0][0])                              

 结果:

  0  1  2
0  1  2  3
1  4  5  6
a的列数: 3
a的行数; 2
a.ix[[0]]:
    0  1  2
0  1  2  3
a.ix[[0]].values: [[1 2 3]]
a.ix[[0]].values[0]: [1 2 3]
a.ix[[0]].values[0][0]: 1
 

#直接获取dataframe某一列的类别数

print(train['amt_src1'].value_counts().size)

#获取某一列按另一列进行划分

print(train['device2'].groupby(train['device1']))

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值