其他分享
首页 > 其他分享> > pandas生成dataframe,获取行和列,得到series

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