pandas基础

第一章:数据载入及初步观察

1.1:载入数据

1.1.1:导入numpy和pandas
import numpy as np
import pandas as pd
1.1.2:导入数据
#相对路径导入数据
pd.read_csv('train.csv') #使用相对路径载入数据
df.shape #查看数据行和列
df.head() #查看头部和尾部数据
df.T #将数据转置

#绝对路径导入数据
import os 
os.path.abspath('train.csv') #查看数据的绝对路径
path = os.path.abspath('train.csv')
pd.read_csv(path)

#pd.read_table
pd.read_table(path) #用表格进行数据的分隔
pd.read_table(path) #用,进行数据的分隔,结果与pd.read_csv相似
1.1.3:每1000行为一个数据模块,逐块读取
df = pd.read_csv('train.csv', chunksize=1000) #将1000列数据分为一块
df.get_chunk() #运行一次读取一块数据
1.1.4:将表头改成中文,索引改为乘客ID
df = pd.read_csv('train.csv')
df.columns = ['乘客ID','是否幸存','乘客等级(1/2/3等舱位)','乘客姓名','性别','年龄','堂兄弟/妹个数','父母与小孩个数','船票信息','票价','客舱','登船港口'] #用中文表头替代

df = pd.read_csv('train.csv', names=['乘客ID','是否幸存','乘客等级(1/2/3等舱位)','乘客姓名','性别','年龄','堂兄弟/妹个数','父母与小孩个数','船票信息','票价','客舱','登船港口']) #增加表头

1.2:初步观察

1.2.1:查看数据的基本信息
df.info():          # 打印摘要
df.describe():      # 描述性统计信息
df.values:          # 数据 <ndarray>
df.to_numpy()       # 数据 <ndarray> (推荐)
df.shape:           # 形状 (行数, 列数)
df.columns:         # 列标签 <Index>
df.columns.values:  # 列标签 <ndarray>
df.index:           # 行标签 <Index>
df.index.values:    # 行标签 <ndarray>
df.head(n):         # 前n行
df.tail(n):         # 尾n行
pd.options.display.max_columns=n: # 最多显示n列
pd.options.display.max_rows=n:    # 最多显示n行
df.memory_usage():                # 占用内存(字节B)
1.2.2:观察表格前10行的数据和后15行的数据
df.tail(15) #倒数15行
df.head(10) #开头10行
1.2.3:判断数据是否为空,为空的地方返回True,其余地方返回False
pd.isnumll 

1.3:保存数据

1.3.1:将你加载并做出改变的数据,在工作目录下保存为一个新文件train_chinese.csv
df.to_csv('train_chinese.csv')

1.4:知道你的数据叫什么

1.4.1:pandas中有两个数据类型DateFrame和Series
import numpy as np
import pandas as pd

sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
example_1 = pd.Series(sdata) #一种类似于一维数组的对象
example_1

data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002, 2003],'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
example_2 = pd.DataFrame(data) #一个表格型的数据结构
example_2
1.4.2:根据上节课的方法载入"train.csv"文件
df = pd.read_csv('/Users/chenandong/Documents/datawhale数据分析每个人题目设计/titanic/train.csv')
df.head() #查看所有列
1.4.3:查看DataFrame数据的每列的名称
df.columns
1.4.4:查看"Cabin"这列的所有值
df['Cabin'].head()

df.Cabin.head()
type(df.Cabin)
1.4.5:加载文件"test_1.csv",然后对比"train.csv",看看有哪些多出的列,然后将多出的列删除
test_1 = pd.read_csv('test_1.csv')
test_1.head() #

# 删除a的列
del test_1['a']

test_1.pop('a')

test_1.drop(['a'],axis=1) #返回的是副本
test_1.drop(['a'],axis=1,inplace=True) #返回的是test_1,不是副本
1.4.6: 将[‘PassengerId’,‘Name’,‘Age’,‘Ticket’]这几个列元素隐藏,只观察其他几个列元素
test_1.drop(['PassengerId','Name','Age','Ticket'],axis=1)
test_1.head()

1.5:筛选的逻辑

1.5.1:我们以"Age"为筛选条件,显示年龄在10岁以下的乘客信息
test_1["Age"] < 10 #返回true or false
test_1[test_1["Age"]<10] #返回表格信息
1.5.2:以"Age"为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来,并将这个数据命名为midage
midage = test_1[(test_1["Age"]>10) & (test_1["Age"]<50)]
midage.head()
1.5.3:将midage的数据中第100行的"Pclass"和"Sex"的数据显示出来
midage = midage.reset_index(drop=True) #这个索引不连续
midage.head()

midage.loc[[100],['Pclass','Sex']]
1.5.4:使用loc方法将midage的数据中第100,105,108行的"Pclass","Name"和"Sex"的数据显示出来
midage.loc[[100,105,108],['Pclass','Name','Sex']] 
1.5.5:使用iloc方法将midage的数据中第100,105,108行的"Pclass","Name"和"Sex"的数据显示出来
midage.iloc[[100,105,108],[2,3,4]] #内容对应列数,从0列开始

1.6了解你的数据吗?

1.6.1:利用Pandas对示例数据进行排序,要求升序
frame = pd.DataFrame(np.random.randn(3,3), 
                     index=list('123'), 
                     columns=list('acb'))
frame
frame.sort_values('b')

# 让行索引升序排序
frame.sort_index() 

# 让列索引升序排序
frame.sort_index(axis=1)

# 让列索引降序排序
frame.sort_index(axis=1, ascending=False)

# 让任选两列数据同时降序排序
frame.sort_values(by=['a', 'c'], ascending=False)
1.6.2:对泰坦尼克号数据(trian.csv)按票价和年龄两列进行综合排序(降序排列),从数据中你能发现什么
text.sort_values(by=['票价', '年龄'], ascending=False)
text.sort_values(by=['年龄', '票价'], ascending=False)
1.6.3:利用Pandas进行算术计算,计算两个DataFrame数据相加结果
x = pd.DataFrame(np.random.randn(3,3), 
                     index=list('123'), 
                     columns=list('acb'))
y = pd.DataFrame(np.random.randn(3,3), 
                     index=list('423'), 
                     columns=list('acf'))
x + y #只有行和列完全相同的才会相加
1.6.4:通过泰坦尼克号数据如何计算出在船上最大的家族有多少人?
max(text['兄弟姐妹个数'] + text['父母子女个数'])
1.6.5:学会使用Pandas describe()函数查看数据基本统计信息
df.describe()

from matplotlib pyplot as plt
plt.hist(df['年龄']) #直方图
1.6.6:分别看看泰坦尼克号数据集中 票价、父母子女 这列数据的基本统计数据,你能发现什么?
df['票价'].describe()
text['父母子女个数'].describe()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值