documentation:https://pandas.pydata.org/pandas-docs/stable/index.html
中文文档:https://www.pypandas.cn/
import pandas as pd
Series
是带标签的一维数组,可存储整数、浮点数、字符串、Python 对象等类型的数据。轴标签统称为索引。调用pd.Series
函数即可创建 Series。>>> s = pd.Series(data, index=index)
DataFrame 是由多种类型的列构成的二维标签数据结构,类似于 Excel 、SQL 表,或 Series 对象构成的字典。
>>> pd.DataFrame(d, index=['d', 'b', 'a'], columns=['two', 'three'])
DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False)
参数说明:
labels 就是要删除的行列的名字,用列表给定
axis 默认为0,指删除行,因此删除columns时要指定axis=1;
index 直接指定要删除的行
columns 直接指定要删除的列
inplace=False,默认该删除操作不改变原数据,而是返回一个执行删除操作后的新dataframe;
inplace=True,则会直接在原数据上进行删除操作,删除后无法返回。因此,删除行列有两种方式:
1)labels=None,axis=0 的组合
2)index或columns直接指定要删除的行或列#删除列名为a的列,如果inplace不写默认为false,并没有在原数据中删除 test_1.drop('a', axis=1, inplace=True) test_1.head(3) #删除列名为a的列 del test_1['a'] #删除第0,2,4列 ,axis=0表示行,1表示列 test_1.drop(df.columns[[0, 1, 3]], axis=1) #隐藏某列,如'Age','Ticket',只观察其他几个列元素 test_1.drop(['Age','Ticket'],axis=1).head(3) #这样写不可以,显示出来的是全部 test_1.drop(['Age','Ticket'],axis=1) test_1.head(3)
DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)
作用:设置单索引和复合索引。
参数说明:
keys:列标签或列标签/数组列表,需要设置为索引的列
drop:默认为True,删除用作新索引的列
append:是否将列附加到现有索引,默认为False
inplace:输入布尔值,表示当前操作是否对原数据生效,默认为False
注:append添加新索引,drop为False,inplace为True时,索引将会还原为列
例:In [307]: data Out[307]: a b c d 0 bar one z 1.0 1 bar two y 2.0 2 foo one x 3.0 3 foo two w 4.0 In [308]: indexed1 = data.set_index('c') In [309]: indexed1 Out[309]: a b d c z bar one 1.0 y bar two 2.0 x foo one 3.0 w foo two 4.0 In [310]: indexed2 = data.set_index(['a', 'b']) In [311]: indexed2 Out[311]: c d a b bar one z 1.0 two y 2.0 foo one x 3.0 two w 4.0
DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill=”)
作用:还原索引,重新变为默认的整型索引
参数说明:
level:数值类型可以为:int、str、tuple或list,默认无,仅从索引中删除给定级别。默认情况下移除所有级别。控制了具体要还原的那个等级的索引 。
drop:当指定drop=False时,则索引列会被还原为普通列;否则,经设置后的新索引值被会丢弃。默认为False。
inplace:输入布尔值,表示当前操作是否对原数据生效,默认为False。
col_level:数值类型为int或str,默认值为0,如果列有多个级别,则确定将标签插入到哪个级别。默认情况下,它将插入到第一级。
col_fill:对象,默认‘’,如果列有多个级别,则确定其他级别的命名方式。如果没有,则重复索引名。注:不仅仅恢复set_index的索引,对于其他筛选也有作用,比如midage = df[(df["Age"]>10)& (df["Age"]<50)]
In [318]: data Out[318]: c d a b bar one z 1.0 two y 2.0 foo one x 3.0 two w 4.0 In [319]: data.reset_index() Out[319]: a b c d 0 bar one z 1.0 1 bar two y 2.0 2 foo one x 3.0 3 foo two w 4.0 #不仅仅恢复set_index的索引,对于其他筛选也有作用,比如 midage = df[(df["Age"]>10)& (df["Age"]<50)] midage = midage.reset_index(drop=True)
loc函数:通过行索引 "Index" 中的具体值来取行数据(如取"Index"为"A"的行) df.loc[ [行号/名], [列号/名] ]
iloc函数:通过行号来取行数据(如取第二行的数据) df.iloc[ [行号], [列号] ]#将midage的数据中第100,105,108行的"Pclass","Name"和"Sex"的数据显示出来 midage.loc[[100,105,108],['Pclass','Name','Sex']] midage.iloc[[100,105,108],[2,3,4]]
DataFrame.sort_index(axis=0, level=None, ascending=True, inplace=False, kind=’quicksort’, na_position=’last’, sort_remaining=True, by=None) 参数说明: axis:索引,axis=1按列排序,axis=0按行排序 level:如果不是,则对指定索引级别的值进行排序 ascending:升序与降序排序,默认升序 inplace:如果为True,则就地执行操作 kind:{“快速排序”,“合并排序”,“堆排序”},默认为“快速排序”。选择排序算法。有关更多信息,另请参见ndarray.np.sort。 mergesort是唯一稳定的算法。对于DataFrame,此选项仅在对单个列或标签进行排序时适用。 na_position:[{'first','last'},默认为'last']首先将NaN放在开头,最后将NaN放在结尾。未针对MultiIndex实施。 sort_remaining:如果为true且按级别和索引排序是多层,则按指定级别排序后也按其他级别(按顺序)排序 DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last') 参数说明: by:指出某个列/行名,对该列/行进行排序 其他参数同上