安装配置PyCharm
官方下载地址:http://www.jetbrains.com/pycharm/
CSDN下载地址:http://download.csdn.net/download/coofly/6637569
配色方案的调整:
File–>Settings–>Editor–>Colors & Fonts 选择Monokai
显示行号
File–>Settings–>Editor–> General –>Appearance –>Show line number
安装pandas 插件
安装pandas 之前首先安装
setuptools
pip
pandas
numpy
matplotlib
File–>Settings–>PythonProj–>Project Interpreter
Series
参考:http://pda.readthedocs.org/en/latest/chp5.html
pandas两个重要的数据结构: Series 和 DataFrame
Series是一个一维的类似的数组对象,包含一个数组的数据(任何NumPy的数据类型)和一个与数组关联的数据标签,被叫做 索引。
eg:
ser = Series([5,4,3,2,-1])
print(ser);
输出结果:
0 5
1 4
2 3
3 2
4 -1
索引在左边,值在右边。因为我们没有给数据指定索引,一个包含整数0到 N-1 (这里N是数据的长度)的默认索引被创建。
创建一个带有索引来确定没一个数据点的Series
ser1 = Series([5,4,3,2,-1],index=['a','b','c','d','e'])
print(ser1)
输出结果:
a 5
b 4
c 3
d 2
e -1
通过索引检索数据
print(ser1['c'])
输出结果:
3
如果你有一些数据在一个Python字典中,你可以通过传递字典来从这些数据创建一个Series
通过字典创建series
sdata = {}
sdata['a'] = 5
sdata['c'] = 10
sdata['b'] = 4
sdata['d'] = -2
ser2 = Series(sdata)
print(ser2)
输出结果:
a 5
b 4
c 10
d -2
结果Series中的索引将是按字典排序
删除数据
#drop
ser3 = ser2.drop(['a'])
print(ser3)
b 4
c 10
d -2
DataFame
DataFame表示一个表格,类似电子表格的数据结构,包含一个经过排序的列表集有很多方法来构建一个DataFrame,但最常用的一个是用一个相等长度列表的字典或NumPy数组:
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'],
'year': [2000, 2001, 2002, 2001, 2002],
'pop': [1.5, 1.7, 3.6, 2.4, 2.9]}
frame = DataFrame(data)
print(data)
输出结果:
pop state year
0 1.5 Ohio 2000
1 1.7 Ohio 2001
2 3.6 Ohio 2002
3 2.4 Nevada 2001
4 2.9 Nevada 2002
设置顺序:
frame = DataFrame(data, columns=['year', 'state', 'pop'])
输出结果:
year state pop
0 2000 Ohio 1.5
1 2001 Ohio 1.7
2 2002 Ohio 3.6
3 2001 Nevada 2.4
4 2002 Nevada 2.9
增加索引:
frame1 = DataFrame(data, columns=['year', 'state', 'pop'],index=['a','b','c','d','e'])
输出结果:
year state pop
a 2000 Ohio 1.5
b 2001 Ohio 1.7
c 2002 Ohio 3.6
d 2001 Nevada 2.4
e 2002 Nevada 2.9
检索数据:
ser3 = frame1['year']
print(ser3['a'])
DataFrame 通过columns来获取数据,得到Series.
输出结果:
2000
条件检索
frame1 = frame[frame['pop'] > 2]
print(frame1)
输出结果:
year state pop
2 2002 Ohio 3.6
3 2001 Nevada 2.4
4 2002 Nevada 2.9
通过索引对象检索数据
print(frame1.ix['e'])
输出结果:
year 2002
state Nevada
pop 2.9
增加数据:
newVal = Series([-1.2, -1.5, -1.7], index=['a', 'c', 'e'])
frame1['debt'] = newVal
print(frame1)
输出结果:
year state pop debt
a 2000 Ohio 1.5 -1.2
b 2001 Ohio 1.7 NaN
c 2002 Ohio 3.6 -1.5
d 2001 Nevada 2.4 NaN
e 2002 Nevada 2.9 -1.7
如果没有值,在结果中它会表示为NA值
删除数据
fram2 = frame1.drop(['year','state'],axis=1);
print(fram2)
输出结果:
pop debt
a 1.5 -1.2
b 1.7 NaN
c 3.6 -1.5
d 2.4 NaN
e 2.9 -1.7
drop() 返回的是一个新对象,元对象不会被改变。
fram2 = frame1.drop(['a','b']);
print(fram2)
输出结果:
year state pop debt
c 2002 Ohio 3.6 -1.5
d 2001 Nevada 2.4 NaN
e 2002 Nevada 2.9 -1.7
Pandas 重要功能
- 取前两行值
- 取后三行值
- 转置
- 对轴排序
- 对值排序
- 合并
- Append追加操作
- groupby分组,求和
参考:http://www.cnblogs.com/chaosimple/p/4153083.html
取前两行值
print(frame1.head(2))
输出结果:
year state pop debt
a 2000 Ohio 1.5 -1.2
b 2001 Ohio 1.7 NaN
取后三行值
print(frame1.tail(3))
输出结果:
year state pop debt
c 2002 Ohio 3.6 -1.5
d 2001 Nevada 2.4 NaN
e 2002 Nevada 2.9 -1.7
转置
print(frame1.T)
输出结果:
a b c d e
year 2000 2001 2002 2001 2002
state Ohio Ohio Ohio Nevada Nevada
pop 1.5 1.7 3.6 2.4 2.9
debt -1.2 NaN -1.5 NaN -1.7
对轴排序
print(frame1.sort_index(axis=1,ascending=True))
输出结果:
debt pop state year
a -1.2 1.5 Ohio 2000
b NaN 1.7 Ohio 2001
c -1.5 3.6 Ohio 2002
d NaN 2.4 Nevada 2001
e -1.7 2.9 Nevada 2002
对值排序
print(frame1.sort(columns='year'))
输出结果:
year state pop debt
a 2000 Ohio 1.5 -1.2
b 2001 Ohio 1.7 NaN
d 2001 Nevada 2.4 NaN
c 2002 Ohio 3.6 -1.5
e 2002 Nevada 2.9 -1.7
合并:
Concat,按照行的合并,多个 DataFrame 然后把它们放进一个数组中
frame2 = DataFrame(np.random.rand(4,3));
DataFrame切分
frame3 = [frame2[:2],frame2[3:4]]
DataFrame 合并
_frame3 = pd.concat(frame3)
print(_frame3)
输出结果:
0 1 2
0 0.449950 0.556051 0.811427
1 0.312357 0.429655 0.725275
3 0.558072 0.747375 0.803023
Append 追加操作
frame4 = frame2.append(_frame3,ignore_index=True);
print(frame4)
输出结果:
0 1 2
0 0.449950 0.556051 0.811427
1 0.312357 0.429655 0.725275
2 0.287861 0.464538 0.744888
3 0.558072 0.747375 0.803023
4 0.449950 0.556051 0.811427
5 0.312357 0.429655 0.725275
6 0.558072 0.747375 0.803023
groupby分组,求和
group_data = frame.groupby('state').sum()
print(group_data)
输出结果:
year pop
state
Nevada 4003 5.3
Ohio 6003 6.8
导入保存数据
读csv文件
csv = pd.read_csv(‘E:\zhangqx\test.csv’,parse_dates=True)
写csv文件
csv.to_csv(‘E:\zhangqx\test1.csv’)
支持的格式:
csv,excel,hdf,sql,json,html