首先确定pandas和numpy的版本问题
载入数据
pd.read_xxx() table/csv
注意,read_csv和read_table都是是加载带分隔符的数据,每一个分隔符作为一个数据的标志,但二者读出来的数据格式还是不一样的,read_table是以制表符 \t 作为数据的标志,也就是以行为单位进行存储。
可以看出,读完后每个字符串之间有逗号相隔,这其实表明每一行作为一个维度进行了存储,所以最后它是一个5行1列的数组,每一行字符串为一列而不是每一个字符串。
而 read_csv读完后是一个5行4列的数组,每一个字符串作为一列,这是二者的区别。还有固定宽度读取的read_ffw 和table 的效果一样。
数据块读取
chunker = pd.read_xxx(filename, chunksize = xxx)
修改表头,索引
df = pd.read_csv(filename, names=[],index_col=’ ',header=0)
查看数据基本信息
df.info()
观察前后xx行数据
df.head(xx) df.tail(xx)
查看数据是否为空,空返回true,其他返回false
df.isnull().head()
保存数据
df.to_csv(filename, encoding=‘utf_8_sig’) 防止乱码
pandas中有两类数据类型DataFrame(df)和Series
Series:
一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近。Series如今能保存不同种数据类型,字符串、boolean值、数字等都能保存在Series中。
DataFrame:
二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。
查看DataFrame数据的每列的名称
df.columns注意不要漏s
查看"Cabin"这列的所有值[有多种方法]
df[‘Cabin’]
df.Cabin
删除a列数据
使用del删除
del df[‘a’]
使用drop删除
df = df.drop([‘a’],axis = 1)不修改原数据
df.drop([‘a’],axis=1,inplace=True)修改原数据
df.drop(df.columns[13],axis=1,inplace=True)
隐藏某几列数据
df.drop([‘xxx’],axis=1).head(3)
数据筛选
筛选 Age小于10的数据
df[df[‘Age’]<10]
使用与或关系筛选
df[(df[‘Age’]>=10)&(df[‘Age’]<=50)]
重置筛选过后得到的数据的相对索引位置
midage.reset_index(drop=True)
loc方法将对应行对应列的数据显示出来
midage.loc[[100,105,108],[‘Pclass’,‘Name’,‘Sex’]]
iloc方法将对应行对应列的数据显示出来
midage.iloc[[100,105,108],[2,3,4]]
创建dataframe文件
frame = pd.DataFrame(np.arange(8).reshape((2, 4)), index=[‘2’, ‘1’], columns=[‘d’, ‘a’, ‘b’, ‘c’])
按照指定c列排序
frame.sort_values(by=‘c’, ascending=True)
让行索引升序排序
frame.sort_index()
让列索引升序排序
frame.sort_index(axis=1)
让列索引降序排序
frame.sort_index(axis=1, ascending=False)
让任选两列数据同时降序排序
frame.sort_values(by=[‘a’, ‘c’], ascending=False)
计算两个dataframe文件的相加结果:
两个DataFrame相加后,会返回一个新的DataFrame,对应的行和列的值会相加,没有对应的会变成空值NaN。
使用describe函数查看数据基本统计信息
df.describe()
可以查看数据位数、均值、标准差、最小值、最大值、25%、50%、75%的信息