导入pandas模块:
1
|
import
pandas as pd
|
使用import读入pandas模块,并且为了方便使用其缩写pd指代。
读入待处理的excel文件:
1
|
df
=
pd.read_excel(
'log.xls'
)
|
通过使用read_excel函数读入excel文件,后面需要替换成excel文件所在的路径。读入之后变为pandas的DataFrame对象。DataFrame是一个面向列(column-oriented)的二维表结构,且含有列表和行标,对excel文件的操作就转换为对DataFrame操作。另外,如果一个excel含有多个表,如果你只想读入其中一个可以:
1
|
df
=
pd.read_excel(
'log.xls'
, sheetname
=
1
)
|
增加了一个参数sheetname,表示的是第几个表,从0开始计数。我上面设置的是1,也就是第二个表。
读入之后,可以先查看表头信息和每一列的数据类型:
1
|
df.dtypes
|
1
2
3
4
5
6
7
8
9
10
|
Member object
Unnamed: 1 float64
Unnamed: 2 float64
Unnamed: 3 float64
Unnamed: 4 float64
Unnamed: 5 float64
家内外活动类型 object
Unnamed: 7 object
activity object
dtype: object
|
提取每个member连续出现的最后一行数据:
1
|
new_df
=
df.drop_duplicates(subset
=
'Member'
, keep
=
'last'
)
|
以上语句的意思是根据Member字段去除掉多余的行,并且保留相同行的最后一行数据。这些就得到了每一个member最后一行的数据了,返回了经过筛选后的DataFrame。
接下来需要将处理后的结果,保存为excel文件:
1
2
3
|
out
=
pd.ExcelWriter(
'output.xls'
)
new_df.to_excel(out)
out.save()
|
output.xls是你要保存的文件名,可以任取;然后将DataFrame的内容保存到该文件,最后保存该文件到系统的磁盘上。
接下来,你就可以在当前目录看到一个新的文件,可以直接使用excel打开查看。
Pandas还提供了很多的API,可以根据具体的任务,查找API文档,找到合适的函数来完成任务。
附:一个完整的示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#coding=utf-8
import
pandas as pd
# 读入excel文件中的第2个表
df
=
pd.read_excel(
'log.xls'
, sheetname
=
1
)
# 查看表的数据类型
print
df.dtypes
# 查看Member列的数据
print
df[
'Member'
]
'''
# 新建一列,每一行的值是Member列和activity列相同行值的和
for i in df.index:
df['activity_2'][i] = df['Member'][i] + df['activity'][i]
'''
# 根据Member字段去除掉多余的行,并且保留相同行的最后一行数据
new_df
=
df.drop_duplicates(subset
=
'Member'
, keep
=
'last'
)
# 导出结果
out
=
pd.ExcelWriter(
'output.xls'
)
new_df.to_excel(out)
out.save()
|