欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

日常小知识点积累:python list列表推导式、pandas.get_dummies、pandas.DataFrame.dtypes

程序员文章站 2024-01-05 13:21:34
...

1.列表推导式基本形式:

 result = [item for item in squence <if conditions>]

 举例:在以下球员姓名名单中找出名字中含有字母‘a’的球员

roster = ['Irving','Hayward','Horford','Tatum','Jaylen','Rozier','Smart']
contains_a = [i for i in roster if 'a' in i]
contains_a

>>>['Hayward', 'Tatum', 'Jaylen', 'Smart']  

 

2.pandas.get_dummies:

pandas提供的这个方法用于给类别型变量进行one-hot或dummy编码(二者差别:dummy少用一个维度的变量来表示和one-hot编码相同的信息量,具体请见https://blog.csdn.net/weixin_41712499/article/details/82657296

pandas.get_dummies(dataprefix=Noneprefix_sep='_'dummy_na=Falsecolumns=Nonesparse=False

                                 drop_first=Falsedtype=None)

说说里面几个参数的意义:

  •  prefixstring, list of strings, or dict of strings.     

前缀,即你进行one-hot编码后多出来的几列特征,其列名前缀。

  • dummy_na : bool, default False

若这个参数设置为True,则NaN项也会被作为一个特征取值进行one-hot编码

  • columns : list-like, default None

想要被进行one-hot编码的特征的列名集合。当columns = None,则默认所有dtype为object的数据均进行one-hot编码

  • drop_first : bool, default False

若True,则进行one-hot编码的这个特征(假设有离散的k个取值)被转化成k个one-hot特征,即one-hot编码;

若False,则进行one-hot编码的这个特征(假设有离散的k个取值)被转化成k-1个one-hot特征,即dummy编码;

3.pandas.DataFrame.dtypes:

pandas提供的这个方法用于返回这个DataFrame中所有列的dtype,以一个pandas.Series形式返回。这个Series的index就是DataFrame的各列名。

  • 常见的pandas数据dtype:
    dft = pd.DataFrame(dict(A = np.random.rand(3), B = 1, C = 'foo',D =     
                            pd.Timestamp('20010102'), E = 
                            pd.Series([1.0]*3).astype('float32'),F = False, G = 
                            pd.Series([1]*3,dtype='int8')))
    print(dft)
    
              A  B    C          D    E      F  G
    0  0.809585  1  foo 2001-01-02  1.0  False  1
    1  0.128238  1  foo 2001-01-02  1.0  False  1
    2  0.775752  1  foo 2001-01-02  1.0  False  1
    
    
    
    print(dft.dtypes)
    
    A           float64
    B             int64
    C            object
    D    datetime64[ns]
    E           float32
    F              bool
    G              int8
    dtype: object

           请注意:各数据类型的混合列,dtype = 'object'; 我们可以用dtype == ‘object’来挑选categorical数据,因为它们的特征值大多都是字符串格式的。

相关标签: pandas Python

上一篇:

下一篇: