chunker = pd.read_csv('train.csv', chunksize=1000)
为什么要进行逐块读取?
在利用pyhon编写数据处理脚本时,经常要从外界读取csv、txt等格式的文件。当读取的文件较大时,这时若直接利用pandas读取,会给电脑造成太大的压力,逐块读取的作用就在于此。
更改表头与索引对于某些英文资料,我们可以通过翻译来更直观的熟悉我们的数据,下面尝试将表头改为中文,索引改成乘客ID
df = pd.read_csv('train.csv', names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID',header=0)
df.head()
1.2、数据观察
| 函数 | 功能 |
|---|---|
| df.info() | 查看数据的基本信息 |
| df.head(10) | 观察表格前10行的数据 |
| df.tail(10) | 观察表格后10行的数据 |
| df.isnull().head() | 判断数据是否为空,空的地方返回True |
# 注意:不同的操作系统保存下来可能会有乱码。大家可以加入`encoding='GBK' 或者 ’encoding = ’utf-8‘‘`
df.to_csv('train_chinese.csv')
二、pandas基础
2.1、数据类型
pandas中有两个数据类型Dateframe和Series
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)
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
example_1 = pd.Series(sdata)
Ohio 35000 Texas 71000 Oregon 16000 Utah 5000 dtype: int642.2、一些操作函数
| 函数 | 功能 |
|---|---|
| df.columns | 查看Dataframe数据的每列的名称 |
| df['Cabin'].head(3) | 查看"Cabin"这列的所有值 |
| df.Cabin.head(3) | 查看"Cabin"这列的所有值 |
| del df['a'] | 删去"a"这一列 |
| df.drop(['PassengerId','Name', 'Age','Ticket'],axis=1).head(3) | ['PassengerId','Name','Age','Ticket']这几个列元素隐藏,只观察其他几个列元素 |
| df[df["Age"]<10].head(3) | 以"Age"为筛选条件,显示年龄在10岁以下的乘客信息 |
| midage = midage.reset_index(drop=True) | 重置索引 |
| midage.loc[[100],['Pclass','Sex']] | 将数据中第100行的"Pclass"和"Sex"的数据显示出来 |
| midage.iloc[[100],[2,3]] | 将数据中第100行的"Pclass"和"Sex"的数据显示出来 |
#自己构建一个都为数字的Dataframe数据
frame = pd.Dataframe(np.arange(8).reshape((2, 4)),
index=['2', '1'],
columns=['d', 'a', 'b', 'c'])
# 大多数时候我们都是想根据列的值来排序,所以,将你构建的Dataframe中的数据根据某一列,升序排列 frame.sort_values(by='c', ascending=True)
可以看到sort_values这个函数中by参数指向要排列的列,ascending参数指向排序的方式(升序还是降序)
# 让行索引升序排序 frame.sort_index()
# 让列索引降序排序 frame.sort_index(axis=1, ascending=False)
# 让任选两列数据同时降序排序 frame.sort_values(by=['a', 'c'], ascending=False)
2.3 查看数据基本统计信息
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'])
# 调用 describe 函数,观察frame2的数据基本信息
frame2.describe()
'''
count : 样本数据大小
mean : 样本数据的平均值
std : 样本数据的标准差
min : 样本数据的最小值
25% : 样本数据25%的时候的值
50% : 样本数据50%的时候的值
75% : 样本数据75%的时候的值
max : 样本数据的最大值
'''
''' 看看泰坦尼克号数据集中 票价 这列数据的基本统计数据 ''' text['票价'].describe()
count 891.000000 mean 32.204208 std 49.693429 min 0.000000 25% 7.910400 50% 14.454200 75% 31.000000 max 512.329200 Name: 票价, dtype: float64



