pandas的基础使用

 
从 CSV 文件中读取数据

这个数据集是一个列表,蒙特利尔的 7 个不同的自行车道上每天有多少人。

broken_df = pd.read_csv('../data/bikes.csv')

# 查看前三行

broken_df[:3]

 

你可以看到这完全损坏了,说明读取方式不合适。 read_csv 拥有一堆选项能够让我们修复它,在这里我们:

将列分隔符改成分号 ;

将编码改为 latin1(默认为 utf-8)

解析Date列中的日期

告诉它我们的日期将日放在前面,而不是月

将索引设置为 Date

fixed_df = pd.read_csv( '../data/bikes.csv',  sep=' ; ' ,  encoding='latin1', parse_dates=['Date'], dayfirst=True, index_col='Date')

fixed_df[:3]

 

从SQL库读取数据

read_sql需要2个参数: SELECT语句, 数据库连接对象。

import sqlite3

con = sqlite3.connect("../data/weather_2012.sqlite")

df = pd.read_sql("SELECT * from weather_2012 LIMIT 3", con)

选择一列,并绘制

当你读取 CSV 时,你会得到一种称为 DataFrame  的对象,它由行和列组成。 您

从数据框架中获取列的方式与从字典中获取元素的方式相同。

fixed_df['Berri 1'].plot()

直接输出表对象

complaints = pd.read_csv('../data/311-service-requests.csv')

当你查看一个大型数据框架,而不是显示数据框架的内容,它会显示一个摘要。这包括所有列,以及每列中有多少非空值。

如直接输出 complaints

查找多列,多行,子集

查看每列的类型:

df.dtypes

查找多列,列索引必须要用中括号扩起来

complaints[['Complaint Type', 'Borough']][:10]

查找多行,这里的ix索引标签函数必须是中括号[]

student.ix[[0,2,4,5,7]]

查找多列,通过ix索引标签查询指定的列

student.ix[ : , ['Name','Height','Weight']]

查询出所有12岁以上的女生姓名、身高和体重

student[(student['Sex']=='F') & (student['Age']>12)][['Name','Height','Weight']]

查看某列中各个种类出现的次数

complaints['Complaint Type'].value_counts()

查看某列中属于某个种类的数据

为了得到噪音投诉,我们需要找到 Complaint Type  列为 Noise -Street/Sidewalk  的行。 我会告诉你如何做,然后解释发生了什么。

noise_complaints = complaints[complaints['Complaint Type'] == "Noise - Street/Sidewalk"]

将多个条件与 & 运算符组合

is_noise = complaints['Complaint Type'] == "Noise - Street/Sidewalk"

in_brooklyn = complaints['Borough'] == "BROOKLYN"

complaints[is_noise & in_brooklyn][:5]

转为numpy数组类型

pd.Series([1,2,3]).values

常用函数

1)对字符串切片操作

requests['某列'] = requests['某列'].str.slice(0,5)

2)为每列添加前缀

df.add_prefix('mean_')

排序

1)将一列排序

Table[[‘某列’]].sort()

2)将多列按照某一列排序

table[['列1', '列2', '列3']].sort('列1')

3)值排序一般使用sort_values()

Student.sort_values(by = [‘sex’, ‘age’])

解析Unix时间戳

pandas 中的时间戳解析的神奇部分是 numpy  datetime  已经存储为 Unix 时间戳。 所以我们需要做的是告诉 pandas 这些整数实际上是数据时间,它不需要做任何转换。

我们需要首先将这些转换为整数,然后我们可以使用 pd.to_datetime函数将我们的整数时间戳转换为 datetimes。这是一个常量时间操作,我们实际上并不改变任何数据,只是改变了 Pandas 如何看待它。

popcon['atime'] = popcon['atime'].astype(int)

popcon['atime'] = pd.to_datetime(popcon['atime'], unit='s')

原文地址:https://www.cnblogs.com/yongfuxue/p/10036999.html