前言:初学python,在这里做一下笔记,方便自己复习回看。以下示例源自kaggle的新手教程。
在之前先输入几行代码让引入的np和pd可以多次使用
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
import numpy as np
import pandas as pd
pd.options.display.max_rows = 8 #为了节省空间,最多输出8行
1. DataFrame创立
pd.DataFrame({'key1':[20,21],
'key2':[30,31]},
index=['A','B'])
# python创立数据表用的是字典形式,字典的key是列名,value是值,index是数据对象,可以重新设置。
输出结果如图:
2.读取csv文件
import pandas as pd
data = pd.read_csv('macrodata.csv')
data.index = pd.PeriodIndex(year=data.year, quarter=data.quarter,name='date').to_timestamp('D', 'end').strftime('%Y-%m-%d')
data.head() #读取前五行数据
3. Indexing
1、选取行列
data.realgdp #选取realgdp那一列
data['realgdp'] #这两行代码等价
data.iloc[:,5:7] #i表示integer,取整数,左闭右开
data.iloc[[0,1,2,3],5] #iloc也可以用list的形式分段索引
用.loc[]函数选取的时候和iloc也差不多,都是可以用list进行索引。
两者区别在于iloc是整数索引,左闭右开;.loc是标签索引,左闭右闭。
data.loc['1959-03-31':'2000-06-30','realgdp']
data.loc['1959-03-31':] #选取行
4. Selecting
(1)选取realgdp>5000的数据
有两种方法,但是我更喜欢第二种,因为条件多的时候打的字少。
data[data['realgdp']>5000] # 筛选
data.loc[data.realgdp>5000]
(2) 选取满足条件一或满足条件二的句子
data.loc[(condition1)|condition2]
如果想要找1995-2000年realgdp>5000或者realgovt>800的数据,要先理清楚之间的关系,是(year) & ((con1)|(con2))
data.loc[((data.year<=2000)&(data.year>=1995))&((data.realgdp>5000)|(data.realgovt>800))]
(3) isin()
选取2008年和1995年的数据
data.loc[data.year.isin([2008,1995])]
data.loc[(data.year==2008)&(data.year==1995)] #上面的方法,但是有点长
(4) notnull()
输出非空数据
data.loc[data.year.notnull()]