DataFrame: 多种类型的列构成的二维标签数据结构(多列)
DataFrame类:
pd.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)
参数:
data: 一维数据,二维数据
index: 行标签
columns: 列标签
1. Dataframe创建
一行一列
1 2
| pd.DataFrame(data=np.arange(1,4))
|
多列
1 2 3
| data = np.arange(16).reshape(4,4) pd.DataFrame(data=data)
|
|
0 |
1 |
2 |
3 |
0 |
0 |
1 |
2 |
3 |
1 |
4 |
5 |
6 |
7 |
2 |
8 |
9 |
10 |
11 |
3 |
12 |
13 |
14 |
15 |
设置index与columns
1 2 3 4
| data = np.arange(16).reshape(4,4) pdata = pd.DataFrame(data=data, index=list('abcd'), columns=['c1','c2','c3','c4']) pdata
|
1 2 3 4
| data = {'c1':[1,2,3], 'c2':[4,5,6]} pdata = pd.DataFrame(data=data) pdata
|
设置列标签
1 2 3
| pdata.columns = ['t1','t2'] pdata
|
2. DataFrame对象访问
获取指定列
输出:
1 2 3 4
| 0 1 1 2 2 3 Name: c1, dtype: int64
|
输出:
loc操作
loc操作:使用类似列表方式去对数据进行访问,支持bool索引
1 2 3 4
| pdata.loc[0]
pdata.loc[0,['c1','c2']]
|
1 2 3
| for item in pdata: print(item)
|
输出:
1 2 3
| for item in pdata.items(): print(item)
|
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13
| ('c1', 0 1 1 2 2 3 Name: c1, dtype: int64) ('c2', 0 4 1 5 2 6 Name: c2, dtype: int64) ('c3', 0 7 1 8 2 9 Name: c3, dtype: int64)
|
1 2 3
| for item in pdata.iterrows(): print(item)
|
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13
| (0, c1 1 c2 4 c3 7 Name: 0, dtype: int64) (1, c1 2 c2 5 c3 8 Name: 1, dtype: int64) (2, c1 3 c2 6 c3 9 Name: 2, dtype: int64)
|
3. DataFrame修改
1 2 3 4 5 6 7
| import pandas as pd data = {'c1':[1,2,3], 'c2':[4,5,6], 'c3':[7,8,9]} pdata = pd.DataFrame(data=data)
pdata['c1'] = 0 pdata
|
1 2 3 4 5 6 7
| import pandas as pd data = {'c1':[1,2,3], 'c2':[4,5,6], 'c3':[7,8,9]} pdata = pd.DataFrame(data=data)
pdata['c4'] = [-1,-1,-1] pdata
|
1 2 3 4 5 6 7
| import pandas as pd data = {'c1':[1,2,3], 'c2':[4,5,6], 'c3':[7,8,9]} pdata = pd.DataFrame(data=data)
pdata.loc[3] = [-1,-1,-1] pdata
|