Python2.7使用Pandas连接数据库

今天遇到一个需求,需要将Excel中的一些数据导入到mysql中,由于之前接触到了Python的Pandas,所以这个时候便想到了Python,但是连接数据库的时候出现了问题,所以便写一个文章记录下。

解决办法:

  1. 下载Mysql_Python的一个exe文件
  2. 注意tosql的这个方法使用的类。pd.io.sql.to_sql
  3. 注意添加index=False防止出现出入的时候多了一个index

sqlalchemy方式连接

导入库

阅读更多

pandas的transform和apply

q区别

transform是Pandas里面Groupby的一个方法,主要作用是对groupby之后的dataframe进行处理,接收的参数一个是一个Series

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
In [18]: df = pd.DataFrame({'B': ['one', 'one', 'two', 'three','two', 'two', 'one', 'three'],
...: 'C': [1,2,3,4,5,6,7,8], 'D': [11,12,13,14,15,16,17,18]})

In [19]: df
Out[19]:
B C D
0 one 1 11
1 one 2 12
2 two 3 13
3 three 4 14
4 two 5 15
5 two 6 16
6 one 7 17
7 three 8 18

那么需要对其groupby之后求C的平均值怎么办

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
n [23]: df.groupby('B').transform(lambda x : x.mean())
Out[23]:
C D
0 3 13
1 3 13
2 4 14
3 6 16
4 4 14
5 4 14
6 3 13
7 6 16

In [24]: df.groupby('B').apply(lambda x : x.mean())
Out[24]:
C D
B
one 3.333333 13.333333
three 6.000000 16.000000
two 4.666667 14.666667

阅读更多

pandas的操作使用

pandas读取csv文件

在pandas读里面包含了几个函数分别用来读取csv或者excel文件:
read_csv方法用来读取一个csv文件一般常用参数是path:用于指定一个文件及其目录
sep表示读取该csv文件的时候是以什么制表符读取的,一般是’,’
usecols表示需要读取csv的多少列,这是一个绝对索引,0代表的是第一列,参数为一个list

Pandas的结构:

pandas经常使用的结构一般是dataframe和series,DataFrame类似于二维数组,或者sql里面的一张表,若在创建的时候为指定索引的话则默认从0开始一次递增为索引:

1
2
3
4
5
6
7
8
9
10
11
12
import pandas as pd
In [15]: df_2=pd.DataFrame(data=['a','b','c'])

In [16]: df_2
Out[16]:
0
0 a
1 b
2 c
用上述方式创建的时候是不需要指定index的,但是用标量创建的时候是需要指定index的:
pd.DataFrame({'a':'A','b':'B'})
ValueError: If using all scalar values, you must pass an index
阅读更多