Datawhale之动手学数据分析第一章

Datawhale之动手学数据分析第一章

0.载入数据

Step1:导入numpy&pandas库

Step2:载入数据

  • 方式   相对路径:必须在同一文件下;绝对路径:在终端内可知
  • 语句   number代表逐步读取的数量
    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.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')

2.pandas基础

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]]

3.探索性数据分析

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 : 样本数据的最大值
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值