gpt4 book ai didi

教你用Python实现Excel表格处理

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章教你用Python实现Excel表格处理由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1、文件

一个测试有两个sheet页的Excel测试文件 test.xlsx 。

教你用Python实现Excel表格处理教你用Python实现Excel表格处理

2、代码

?
1
2
3
4
5
import pandas as pd
 
file1 = pd.ExcelFile( 'D:\\data\\py\\test.xlsx' )
file2 = pd.read_excel( 'D:\\data\\py\\test.xlsx' )
print ( file )
?
1
2
3
4
5
6
<pandas.io.excel._base.ExcelFile object at 0x0000021DE525DF88 >
- - - - - - - - - - - - - - - - - 分割线 - - - - - - - - - - - - - - - - - - - - -
    姓名  年龄 性别  住址
0  张三   7  男 NaN
1  李四   6  男 NaN
2  王芳   6  女 NaN

3、分析

pd.read_excel读出来是一个dataframe可以直接打印出内容,但是只能读取一个sheet页,默认第一个sheet页 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
@Appender (_read_excel_doc)
@deprecate_kwarg ( "skip_footer" , "skipfooter" )
def read_excel(
     io,
     sheet_name = 0 ,
     header = 0 ,
     names = None ,
     index_col = None ,
     usecols = None ,
     squeeze = False ,
     dtype = None ,
     engine = None ,
     converters = None ,
     true_values = None ,
     false_values = None ,
     skiprows = None ,
     nrows = None ,
     na_values = None ,
     keep_default_na = True ,
     verbose = False ,
     parse_dates = False ,
     date_parser = None ,
     thousands = None ,
     comment = None ,
     skip_footer = 0 ,
     skipfooter = 0 ,
     convert_float = True ,
     mangle_dupe_cols = True ,
     * * kwds
):
 
     for arg in ( "sheet" , "sheetname" , "parse_cols" ):
         if arg in kwds:
             raise TypeError(
                 "read_excel() got an unexpected keyword argument " "`{}`" . format (arg)
             )
 
     if not isinstance (io, ExcelFile):
         io = ExcelFile(io, engine = engine)
     elif engine and engine ! = io.engine:
         raise ValueError(
             "Engine should not be specified when passing "
             "an ExcelFile - ExcelFile already has the engine set"
         )
 
     return io.parse(
         sheet_name = sheet_name,
         header = header,
         names = names,
         index_col = index_col,
         usecols = usecols,
         squeeze = squeeze,
         dtype = dtype,
         converters = converters,
         true_values = true_values,
         false_values = false_values,
         skiprows = skiprows,
         nrows = nrows,
         na_values = na_values,
         keep_default_na = keep_default_na,
         verbose = verbose,
         parse_dates = parse_dates,
         date_parser = date_parser,
         thousands = thousands,
         comment = comment,
         skipfooter = skipfooter,
         convert_float = convert_float,
         mangle_dupe_cols = mangle_dupe_cols,
         * * kwds
     )

pd.ExcelFile 返回值是一个Excel对象,不能直接用,但是可以读取整个Excel内容 。

4、pd.ExcelFile

?
1
file = pd.ExcelFile( 'D:\\data\\py\\test.xlsx' )

sheet页名称 。

?
1
print ( file .sheet_names)
?
1
[ '一年级' , '二年级' ]

遍历读取每个sheet页的内容 。

?
1
2
3
for name in file .sheet_names:
     _df = pd.read_excel( file ,name)
     print (_df)
?
1
2
3
4
5
6
7
8
   姓名  年龄 性别  住址
0  张三   7  男 NaN
1  李四   6  男 NaN
2  王芳   6  女 NaN
    姓名  年龄 性别
0  李明   8 
1  刘敏   8 
2  张强   7 

将两个sheet页的内容合并,并添加一列内容为sheet页名称 。

?
1
2
3
4
5
6
7
df_list = []
for name in file .sheet_names:
     _df = pd.read_excel( file ,name)
     _df[ '班级' ] = name
     df_list.append(_df)
df = pd.concat([_df for _df in df_list],sort = False )
print (df)
?
1
2
3
4
5
6
7
姓名  年龄 性别  住址   班级
0  张三   7  男 NaN  一年级
1  李四   6  男 NaN  一年级
2  王芳   6  女 NaN  一年级
0  李明   8  男 NaN  二年级
1  刘敏   8  女 NaN  二年级
2  张强   7  男 NaN  二年级

忽略掉原来的index 。

?
1
2
df = pd.concat([_df for _df in df_list],ignore_index = True ,sort = False )
print (df)
?
1
2
3
4
5
6
7
姓名  年龄 性别  住址   班级
0  张三   7  男 NaN  一年级
1  李四   6  男 NaN  一年级
2  王芳   6  女 NaN  一年级
3  李明   8  男 NaN  二年级
4  刘敏   8  女 NaN  二年级
5  张强   7  男 NaN  二年级

修改列名为英文 。

?
1
2
df = df.rename(columns = { '姓名' : 'name' , '年龄' : 'age' , '性别' : 'sex' , '住址' : 'address' , '班级' : 'class' })
print (df)
?
1
2
3
4
5
6
7
name  age sex  address class
0   张三    7   男      NaN   一年级
1   李四    6   男      NaN   一年级
2   王芳    6   女      NaN   一年级
3   李明    8   男      NaN   二年级
4   刘敏    8   女      NaN   二年级
5   张强    7   男      NaN   二年级

将df保存为CSV、Excel文件 。

?
1
2
df.to_csv( '../data/sheet合并.csv' ,index = False )
df.to_excel( '../data/sheet合并.xls' ,index = True )

5、总结

可以发现Python读写Excel文件还是很方便的! 。

/python/blob/master/data/sheet%E5%90%88%E5%B9%B6.xls) 。

?
1
2
df.to_csv( '../data/sheet合并.csv' ,index = False )
df.to_excel( '../data/sheet合并.xls' ,index = True )

到此这篇关于教你用Python实现Excel表格处理的文章就介绍到这了,更多相关Python处理Excel内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/dkl12/article/details/116790859 。

最后此篇关于教你用Python实现Excel表格处理的文章就讲到这里了,如果你想了解更多关于教你用Python实现Excel表格处理的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com