pandas生成dataframe,获取行和列,得到series
作者:互联网
lib不用就忘:
一、创建dataframe
C:\Windows\system32>python
Python 3.5.4 (v3.5.4:3f56838, Aug 8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>> a = [[3, 4], [5, 6],[7,8]]
>>> b = pd.DataFrame(a)
>>> b
0 1
0 3 4
1 5 6
2 7 8
二、索引
# dataframe的行索引为index,列索引为columns
# 改变索引,会改变dataframe本身,如果不想改变dataframe本身,最好先复制再修改。
new_index1 = ['d', 'e', 'f']
b.index=new_index1
0 1
d 3 4
e 5 6
f 7 8
# 改变列索引
new_index2 = ['g', 'h']
b.columns=new_index2
g h
0 3 4
1 5 6
2 7 8
三、获取行或列
>>> b
0 1
d 3 4
e 5 6
f 7 8
# 三种索引方式:loc, iloc, ix
# loc通过行或列的标签索引,iloc通过行号或列号索引,ix是前两种方式的综合
# 获取第一行
# 方式一:通过loc获取行或列标签的方式
>>> b.loc[['e'], :] # 获取行标签为'e'的行,也可以用 b.loc['e', :]
# 输出:
0 1
e 5 6
# 方式二:通过iloc获取行号或者列号的方式
>>> b.iloc[:, 1] # 获取列标签为1的列,也可以用 b.iloc[:,[1]]
# 输出:
d 4
e 6
f 8
# 方式三:通过ix灵活获取。行列标签和行号列号都支持
>>> b.ix['e',:]
# 输出:
__main__:1: FutureWarning:
.ix is deprecated. Please use
.loc for label based indexing or
.iloc for positional indexing
See the documentation here:
http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#ix-indexer-is-deprecated
0 5
1 6
Name: e, dtype: int64
>>> b.ix[:,1]
# 输出:
d 4
e 6
f 8
Name: 1, dtype: int64
四、获取出的行或列的类型就是dataseries
>>> type(b.loc['e', :])
<class 'pandas.core.series.Series'>
>>> type(b.iloc[:,1])
<class 'pandas.core.series.Series'>
标签:ix,loc,series,行和列,dataframe,索引,获取,iloc 来源: https://blog.csdn.net/qxqxqzzz/article/details/101296187