数据分析笔记1:Pandas的使用

本文采用的例子:kaggle上的泰坦尼克号预测

一.

1.载入数据

import pandas as pd
data=pd.read_csv("C:/Users/45168/Desktop/hands-on-data-analysis-master/第一单元项目集合/train.csv")

2.每1000行为 一个数据模块,逐块读取

chunker=pd.read_csv('C:/Users/45168/Desktop/hands-on-data-analysis-master/第一单元项目集						合/train.csv',chunksize=1000)
for piece in chunker:
    print(piece)

3.将表头改为中文,并将乘客ID作为索引(删除dataframe的索引)

data = pd.read_csv('C:/Users/45168/Desktop/hands-on-data-analysis-master/第一单元项目集							合/train.csv'
                 , names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母							子女个数','船票信息','票价','客舱','登船港口']
                 ,index_col='乘客ID'
                 ,header=0)
data.head()

4.查看数据行数,列数,格式,是否包含null

#查看维度  data.shape 
#查看信息 data.info()
#查看每一列数据格式  data.dtypes
#查看指定列的格式   data['乘客ID']dtype
#查看是否有空值(也可以查看指定列,方法同上)  data.isnull()   
#查看所有列是否有空值   data.isnull().any(axis=1)  #只要该列有null或缺失值,则true,否则false,默认												axis=0表示查看列,axis=1查看行
#显示只有缺失值的行列  :data[data.isnull().values==True]
#统计列中为空的个数:  data.isnull().sum()

5.查看数据前10行,后15行

data.head(10)
data.tail(15)

6.保存数据

data.to_csv(r'C:\Users\45168\Desktop\train_1.csv',encoding='utf-8')

二.Series

1.Series的创建

Series是pandas两大主要数据结构之一,是带标签(即索引)的一维数组。

test={'zjh':'M','jhn':'M','lz':'M'}
data=pd.Series(test)
data

结果如下:

zjh    M
jhn    M
lz     M
dtype: object
DataFrame的创建
test={'name':['zjh','jhn','lz'],'sex':['M','M','M'],'age':['20','20','20']}
data=pd.DataFrame(test)
data

2. 查看数据集每列的名称

data.columns

3.查看某一列的值

法一:

data.Cabin

法二:

data['Cabin']

4.删除某一列

法一:

#导入test_1数据,test_1数据比train数据多了一列,叫’a'
del data1['a']

法二:

data1.drop('a',axis=1,inplace=True)
#axis=1表示列,0表示行
#inplace默认为False,此时屏幕显示还是原来未删除前的结果,True则显示删除后的数据,即将原始数据覆盖了

5.隐藏指定列,只观察其他列

data.drop(['PassengerId','Name','Age','Ticket'],axis=1,inplace=False)

注意这里inplace=False(默认),此时只是隐藏了,没有真正删除覆盖

6.数据筛选

6.1 筛选‘age’在10岁一下的乘客信息
data[data["Age"]<10]
6.2以"Age"为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来,并将这个数据命名为midage
midage=data[(data['Age']>10)&(data['Age']<50)]
midage
6.3 交、并、补操作
#创建数据
ex1=pd.DataFrame({'name':['zjh','jhn','lz'],'sex':['M','M','M'],'age':['20','20','20']})
ex2=pd.DataFrame({'name':['zjh','lz'],'sex':['M','M'],'age':['20','20']})
交集
pd.merge(ex1,ex2,on=['name','sex','age'])
并集
pd.merge(ex1,ex2,on=['name','sex','age'],how='outer')
差集

先将两个表合并,然后再去除重复值

ex2=ex2.append(ex1)
ex2.drop_duplicates(keep=False)

keep有3个参数可选:

False:去除所有重复行

first:保留第一次出现的重复行

last:保留最后一次出现的重复行

7.将midage的数据中第100行的"Pclass"和"Sex"的数据显示出来

重置索引:
midage.reset_index(drop=True)
#drop=True 表示删除原来的索引,False表示保留原来的索引,也就是多了一列
#索引从0开始,所以先加1
midage.index+=1
midage.loc[[100],['Pclass','Sex']]

如果知道指定列的索引也可以:

midage.iloc[[100,105],[2,3,4]]

三.DataFrame

1.创建

frame = pd.DataFrame(np.arange(8).reshape((2, 4)), 
                     index=['2', '1'], 
                     columns=['d', 'a', 'b', 'c'])
frame

结果如下:

dabc
20123
14567

2.排列

● 按列的值
frame.sort_values(by='c',ascending=True) 
#True:升序  False:降序
● 按行索引
frame.sort_index()
● 按列索引
frame.sort_index(axis=1,ascending=True)  #不写,默认就是True
● 任选两列数据同时降序排序
frame.sort_values(by=['a', 'c'], ascending=False)

3.算术计算

直接相加即可,两个DataFrame相加后,会返回一个新的DataFrame,对应的行和列的值会相加,没有对应的会变成空值NaN
计算出在船上最大的家族有多少人(‘兄弟姐妹个数’+‘父母子女个数’)
max(data['兄弟姐妹个数']+data['父母子女个数'])

4.查看基本统计信息(describe函数)

#创建一个数据集
frame2 = pd.DataFrame([[1.4, np.nan], 
                       [7.1, -4.5],
                       [np.nan, np.nan], 
                       [0.75, -1.3]
                      ], index=['a', 'b', 'c', 'd'], columns=['one', 'two'])
frame2
frame2.describe()
查看 子女 这一列的数据统计信息
data['子女'].describe()
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值