kaggle入门之pd.DataFrame

看各种kaggle的代码时,发现pd.DataFrame是常用的数据结构,要想快速浏览、熟练修改各种kaggle代码,首先入门的应该是pd.DataFrame这个结构,下面记录pd.DataFrame常用的几种函数。

1、创建DataFrame

import pandas as pd 
import numpy as np

#数据,行名,列名
df1 = pd.DataFrame(np.random.randn(3, 3), index=list('abc'), columns=list('ABC'))

#也可以用字典创建
dic1 = {
    'name': ['张三', '李四', '王二', '小七'],
    'age': [37, 70, 35, 10],
    'gender': ['男', '男', '男', '女']
    }
df = pd.DataFrame(dic1)

#输出结果
  name  age gender
0   张三   37      男
1   李四   70      男
2   王二   35      男
3   小七   10      女

2、DataFrame属性

2.1、查看属性

import pandas as pd
print(df.dtypes)

#输出结果:
name      object
age        int64
gender    object
dtype: object

2.2、查看DataFrame头和尾,默认是5行

print(df.head(2))
print(df.tail(2))

#输出结果:
  name  age gender
0   张三   37      男
1   李四   70      男
  name  age gender
2   王二   35      男
3   小七   10      女

2.3 查看行名与列名

print(df.index)
print(df.columns)

#输出结果:
RangeIndex(start=0, stop=4, step=1)
Index(['name', 'age', 'gender'], dtype='object')

2.4 df.values 查看数据值,返回ndarray类型的对象

print(df.values)
print (type(df.values))
<class 'numpy.ndarray'>
[['张三' 37 '男']
 ['李四' 70 '男']
 ['王二' 35 '男']
 ['小七' 10 '女']]

2.5 df.empty判断DataFrame是否为空

df_empty = pd.DataFrame({'A' : []})
print(df_empty)

#输出结果:
Empty DataFrame
Columns: [A]
Index: []

print(df_empty.empty)
#输出结果:
True

3、DataFrame 下标、索引

3.1 df.at

访问行/列标签对的单个值,如果label不存在,返回错误

dic1 = {
    'name': ['张三', '李四', '王二', '小七'],
    'age': [37, 70, 35, 10],
    'gender': ['男', '男', '男', '女']
    }

df = pd.DataFrame(dic1)
print(df)
print(df.at[2, 'gender'])

#输出结果:
  name  age gender
0   张三   37      男
1   李四   70      男
2   王二   35      男
3   小七   10      女
男

3.2 df.loc  行操作

将上面的DataFrame的倒置一下,下面将列索引换成[4,5,6,7]是为了说明,loc中的值都是索引’label’值。

dic1 = {
    'name': ['张三', '李四', '王二', '小七'],
    'age': [37, 70, 35, 10],
    'gender': ['男', '男', '男', '女']
    }

df = pd.DataFrame(dic1)

df2 = pd.DataFrame(df.values.T, index=df.columns, columns=[4, 5, 6, 7])
print(df2)

3.2.1 Single label. Note this returns the row as a Series.

print(df2.loc['age'])
#结果:
4    37
5    70
6    35
7    10
Name: age, dtype: object

3.2.2 List of labels. Note using [[]] returns a DataFrame

print(df2.loc[['age', 'gender']])

         4   5   6   7
age     37  70  35  10
gender   男   男   男   女

3.2.3 Single label for row and column

print(df2.loc['age', 7])
10

3.2.4 Slice with labels for row and single label for column.

print(df2.loc['name':'gender', 7])

name      小七
age       10
gender     女
Name: 7, dtype: object

3.2.5 Boolean list with the same length as the row axis

print(df2.loc[[True, False, True]])

         4   5   6   7
name    张三  李四  王二  小七
gender   男   男   男   女

3.2.6 Set value for an entire row

df2.loc['age'] = 100
print (df2)

          4    5    6    7
name     张三   李四   王二   小七
age     100  100  100  100
gender    男    男    男    女

3.3 df[] 列操作

print (df2[7])

name      小七
age       10
gender     女
Name: 7, dtype: object
上一篇:Dart入门宝典第二章——赋值运算符、控制语句、方法和闭包的相关介绍


下一篇:0531vue2.0基本介绍