数据分析之DataFrame对象的创建

DataFrame

DataFrame由具有共同索引的Series按列排列构成(2D),是使用最多的对象。

预览

In [10]:

1
2
3
4
5
6
data = [[1,2,3],
[4,5,6]]
index = ['a','b']
columns = ['A','B','C']
df = pd.DataFrame(data=data, index = index, columns = columns)
df

Out[10]:

1
2
3
A B C
a 1 2 3
b 4 5 6

In [11]:
df.index # 行索引

Out[11]:
Index(['a', 'b'], dtype='object')


In [12]:
df.columns # 列索引,与Series的name一个意思

Out[12]:
Index(['A', 'B', 'C'], dtype='object')


In [13]:
df.values

Out[13]:

1
2
array([[1, 2, 3],
[4, 5, 6]], dtype=int64)

In [14]:
df.dtypes # 这里的dtype带s,查看每列元素类型

Out[14]:

1
2
3
4
A int64
B int64
C int64
dtype: object

创建

pd.DataFrame(data=None, index=None, columns=None)
函数由多个参数,对我们有用的主要是:data,indexcolumns三项

data 无 行索引,无 列索引

  • 如果 datandarray(2D) or list(2D),那么其缺少 DataFrame 需要的行、列索引信息;
  • 如果提供 indexcolumns 项,其必须和data行 或 列长度相同
  • 如果不提供 indexcolumns 项,那么其将默认生成数值索引range(0, data.shape[0]))range(0, data.shape[1])

In [15]:

1
2
3
4
5
6
7
8
# data = [[1,2,3],
# [4,5,6]]
data1 = np.array([[1,2,3],
[4,5,6]] )
index1 = ['a','b']
columns1 = ['A','B','C']
df = pd.DataFrame(data=data1, index = index1, columns = columns1)
df

Out[15]:

1
2
3
A B C
a 1 2 3
b 4 5 6

data 无 行索引,有 列索引

  • 如果datadict of ndarray(1D) or list(1D),所有ndarraylist的长度必须相同。且dictkeyDataFrame提供了需要的columns信息,缺失index
  • 如果提供 index 项,必须和list的长度相同;
  • 如果不提供 index,那么其将默认生成数值索引range(0, data.shape[0]))
  • 如果还额外提供了columns项,那么其将对当前构建的DataFrame进行 列重索引。

In [16]:

1
2
3
4
5
data2 = { 'A' : [1,4], 'B': [2,5], 'C':[3,6] }
index2 = ['a','b']
columns2 = ['A','B','D']
df = pd.DataFrame(data=data2, index = index2, columns = columns2)
df

Out[16]:

A B D
a 1 2 NaN
b 4 5 NaN

data有 行索引,有 列索引

  • 如果data为 dict of Series or dict,那么其已经提供了DataFrame需要的所有信息;
  • 如果多个Series或dict间的索引不一致,那么取并操作(pandas不会试图丢掉信息),缺失的数据填充NaN;
  • 如果提供了index项或columns项,那么其将对当前构建的DataFrame进行 重索引(reindex,pandas内部调用接口)。

In [17]:

1
2
3
4
# data3 = { 'A' : pd.Series([1,4] ,index = ['a','b']), 'B' : pd.Series([2,5] ,index = ['a','b']), 'C' : pd.Series([3,6] ,index = ['a','c']) }
data3 = { 'A' : { 'a':1, 'b':4}, 'B': {'a':2,'b':5}, 'C':{'a':3, 'c':6} }
df = pd.DataFrame(data=data3)
df

Out[17]:

A B C
a 1.0 2.0 3.0
b 4.0 5.0 NaN
c NaN NaN 6.0

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器