Step1:导入numpy&pandas库
Step2:载入数据
pd.read_csv('filename.csv',chunksize=number)
意为将名为filename的数据集里的表头按顺序改为No.x,并以No.1为索引。
pd.read_csv('filename.csv',names=['No.1','No.2','No.3'],index_col='No.1',header=0)
1.1查看数据的基本信息
df.info()
1.2观察DataFrame对象的前n行/后n行
df.head(n)
df.tail()
1.3判断数据是否为空,为空的地方返回True,其余地方返回False
df.isnull().head()
1.4保存数据
df.to_csv('filename.csv')
Series
是带标签的一维数组,可存储整数、浮点数、字符串、Python 对象等类型的数据。轴标签统称为索引。Series的字符串表现形式为:索引在左边,值在右边。如果我们没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的⻓度)的整数型索引。
pd.Series(data,index=['one','two','three'])
DataFrame 是由多种类型的列构成的二维标签数据结构,类似于 Excel 、SQL 表,或 Series 对象构成的字典。
pd.DataFrame(data, index=['a', 'b', 'c'], columns=['one', 'two'])
2.1查看DataFrame数据的每列的项
df.columns
2.2查看特定一列的所有项
df['name'].head()
df.name.head()
2.3删除
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) #删除列名为a的列 del test_1['a'] #删除第0,2,4列 ,axis=0表示行,1表示列 test_1.drop(df.columns[[0, 2, 4]], axis=1) #隐藏某列,如'Age','Ticket',只观察其他几个列元素 test_1.drop(['Age','Ticket'],axis=1).head(n) #这样写不可以,显示出来的是全部 test_1.drop(['Age','Ticket'],axis=1)
2.4筛选
简单使用交集与并集
midage = df[(df["Age"]>10)&(df["Age"]<50)]
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时,索引将会还原为列
loc函数:通过行索引 "Index" 中的具体值来取行数据(如取"Index"为"A"的行) df.loc[ [行号/名], [列号/名] ]
iloc函数:通过行号来取行数据(如取第二行的数据) df.iloc[ [行号], [列号] ]# 第n行的"a"和"b"的数据显示出来 df.loc[[n],['a','b']]
# 使用iloc方法将数据中第a,b,c行的"Age","Name"和"Sex"的数据显示出来 df.iloc[[a,b,c],[Age,Name,Sex]]
frame = pd.DataFrame(np.arange(8).reshape((2, 4)),index=['2', '1'],columns=['d', 'a', 'b', 'c'])
pd.DataFrame(): 创建一个DataFrame对象
np.arange(8).reshape((2, 4)): 生成一个二维数组(2*4),第一列:0,1,2,3 第二列:4,5,6,7
index=['2, 1]: DataFrame 对象的索引列
columns=['d', 'a', 'b', 'c']: DataFrame 对象的索引行
# 让行索引升序排序
frame.sort_index()
# 让列索引升序排序
frame.sort_index(axis=1)
# 让列索引降序排序
frame.sort_index(axis=1, ascending=False)
进行算术计算
#将frame_a和frame_b进行相加
frame1_a + frame1_b
两个DataFrame相加后,会返回一个新的DataFrame,对应的行和列的值会相加,没有对应的会变成空值 NaN。
# 调用 describe 函数,观察frame1的数据基本信息
frame1.describe()
text['name'].describe()
count : 样本数据大小
mean : 样本数据的平均值
std : 样本数据的标准差
min : 样本数据的最小值
25% : 样本数据25%的时候的值 50% : 样本数据50%的时候的值 75% : 样本数据75%的时候的值
max : 样本数据的最大值