Pandas 学习总结

 

一、数据结构

  • Series:相当于一维
  • DataFrame:相当于多维

1.series创建

import pandas as pd
import numpy as np
s = pd.Series([1,3,6,np.nan,44,1])
'''
0     1.0
1     3.0
2     6.0
3     NaN
4    44.0
5     1.0
dtype: float64
'''

 2.dataframe创建

(1)行列命名

dates = pd.date_range('20160101',periods=6)
df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d'])

print(df)
"""
                   a         b         c         d
2016-01-01 -0.253065 -2.071051 -0.640515  0.613663
2016-01-02 -1.147178  1.532470  0.989255 -0.499761
2016-01-03  1.221656 -2.390171  1.862914  0.778070
2016-01-04  1.473877 -0.046419  0.610046  0.204672
2016-01-05 -1.584752 -0.700592  1.487264 -1.778293
2016-01-06  0.633675 -1.414157 -0.277066 -0.442545
"""
#应用
print(df['b'])            #输出b列

(2)默认命名

df1 = pd.DataFrame(np.arange(12).reshape((3,4)))
print(df1)

"""
   0  1   2   3
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
"""

(3)字典命名

df2 = pd.DataFrame({'A' : 1.,
                    'B' : pd.Timestamp('20130102'),
                    'C' : pd.Series(1,index=list(range(4)),dtype='float32'),
                    'D' : np.array([3] * 4,dtype='int32'),
                    'E' : pd.Categorical(["test","train","test","train"]),
                    'F' : 'foo'})
                    
print(df2)

"""
     A          B    C  D      E    F
0  1.0 2013-01-02  1.0  3   test  foo
1  1.0 2013-01-02  1.0  3  train  foo
2  1.0 2013-01-02  1.0  3   test  foo
3  1.0 2013-01-02  1.0  3  train  foo
"""
#应用
print(df2.dtypes)            #查看属性
print(df2.index)             #查看每行序号
print(df2.columns)           #查看每列的名称
print(df2.values)            #查看df2的值
df2.describe()               #数据总结
print(df2.T)                 #数据转置
print(df2.sort_index(axis=1, ascending=False))     #对数据的 index 进行行排序并输出
print(df2.sort_values(by='B'))                     #对数据 值 排序输出   

二、数据筛选

  • 普通筛选
  • loc:标签loc
  • iloc:序列iloc
  • ix:混合ix
  • 判断筛选
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D'])
#普通筛选
print(df['A'],df.A)
print(df[0:3], df['20130102':'20130104'])

#loc标签
print(df.loc['20130101'])
print(df.loc['20130101',['A','B']])

#iloc序列
print(df.iloc[[1,3,5],1:3])

#ix混合
print(df.ix[:3,['A',''C]])

#判断筛选
print(df.[df.A>8])

三、设置值

  • loc、iloc:通过标签、位置设置
  • 判断条件设置
  • 按照行和列设置及添加
  • 添加数据
    dates = pd.date_range('20130101', periods=6)
    df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D'])
    #位置设置
    df.iloc[2,2] = 1111
    df.loc['20130101','B'] = 2222
    
    #条件判断设置
    df.B[df.A>4] = 0
    
    #按照行和列设置添加
    df['F'] = np.nan
    
    #添加序列(长度必须一致)
    df['E'] = pd.Series([1,2,3,4,5,6], index=pd.date_range('20130101',periods=6)) 

猜你喜欢

转载自blog.csdn.net/Raoodududu/article/details/82841316
今日推荐