Python数据分析 知识量:13 - 56 - 232
使用pandas模块导入数据需要用到read_x()方法,其中x代表待导入的文件格式。
Excel在工作中是很常用的工具,其文件格式以.xlsx为后缀,早期版本是.xls。在pandas中对应的读取函数是read_excel(),其参数是待读取文件的路径。需要注意的是:路径名称前需要加一个“r”,以避免路径里面的\被转义。如果不加“r”,就需要把路径里面的所有\转换成/。
import pandas as pd df=pd.read_excel(r"D:\PythonTestFile\population.xlsx") print(df)
运行结果为:
Name Code [YR2017] [YR2018] [YR2019] 0 中国 CHN 1386395000 1392730000 1397715000 1 加拿大 CAN 36543321 37057765 37589262 2 印度 IND 1338658835 1352617328 1366417754 3 大韩民国 KOR 51361911 51606633 51709098 4 巴西 BRA 207833831 209469333 211049527 5 德国 DEU 82657002 82905782 83132799
Excel文件(工作簿)可能含有多个Sheet(工作表),在导入时,如果不指定Sheet,默认导入工作簿的第1个工作表。也可以通过设置sheet-name参数来指定Sheet。
import pandas as pd df=pd.read_excel(r"D:\PythonTestFile\population.xlsx",sheet_name='Sheet2') print(df)
运行结果为:
Name Code [YR2017] [YR2018] [YR2019] 0 意大利 ITA 60536709 60421760 60297396 1 日本 JPN 126785797 126529100 126264931 2 法国 FRA 66864379 66965912 67059887 3 美国 USA 324985539 326687501 328239523 4 英国 GBR 66058859 66460344 66834405 5 俄罗斯联邦 RUS 144496740 144477860 144373535
除了使用Sheet的名称外,也可以使用Sheet的顺序,从0开始计数。
import pandas as pd df=pd.read_excel(r"D:\PythonTestFile\population.xlsx",sheet_name=1) print(df)
运行结果与上面的一样。
导入Excel文件后,DataFrame对象会使用从0开始的默认行索引。可以通过参数index_col指定其他索引。
import pandas as pd df=pd.read_excel(r"D:\PythonTestFile\population.xlsx",index_col='Code') print(df) print(df.index) # 打印行索引
运行结果为:
Name [YR2017] [YR2018] [YR2019] Code CHN 中国 1386395000 1392730000 1397715000 CAN 加拿大 36543321 37057765 37589262 IND 印度 1338658835 1352617328 1366417754 KOR 大韩民国 51361911 51606633 51709098 BRA 巴西 207833831 209469333 211049527 DEU 德国 82657002 82905782 83132799 Index(['CHN', 'CAN', 'IND', 'KOR', 'BRA', 'DEU'], dtype='object', name='Code')
以上代码中,设置了行索引为“Code”列。
与指定行索引相似的,也可以通过参数header设置DataFrame的列索引。一般情况下header的默认值为0,即导入数据的第一行为列索引,而导入的数据一般也是第一行为标题行,作为列索引是合适的。可以指定数据的任意一行为列索引,作为示例,下面是一个没有必要的改变:
import pandas as pd df=pd.read_excel(r"D:\PythonTestFile\population.xlsx",header=1) print(df) print(df.columns)
运行结果为:
中国 CHN 1386395000 1392730000 1397715000 0 加拿大 CAN 36543321 37057765 37589262 1 印度 IND 1338658835 1352617328 1366417754 2 大韩民国 KOR 51361911 51606633 51709098 3 巴西 BRA 207833831 209469333 211049527 4 德国 DEU 82657002 82905782 83132799 Index(['中国', 'CHN', 1386395000, 1392730000, 1397715000], dtype='object')
也可以使用从0开始的数作为列索引,只需将header设为None:
import pandas as pd df=pd.read_excel(r"D:\PythonTestFile\population.xlsx",header=None) print(df) print(df.columns)
运行结果为:
0 1 2 3 4 0 Name Code [YR2017] [YR2018] [YR2019] 1 中国 CHN 1386395000 1392730000 1397715000 2 加拿大 CAN 36543321 37057765 37589262 3 印度 IND 1338658835 1352617328 1366417754 4 大韩民国 KOR 51361911 51606633 51709098 5 巴西 BRA 207833831 209469333 211049527 6 德国 DEU 82657002 82905782 83132799 Int64Index([0, 1, 2, 3, 4], dtype='int64')
如果数据的列数太多,或者不需要导入所有列,可以通过参数usecols指定要导入的列。顺序从0开始计数,目前已不支持为usecols传递整数,应当传入一个int列表。
import pandas as pd df=pd.read_excel(r"D:\PythonTestFile\population.xlsx",usecols=[0,2]) print(df)
运行结果为:
Name [YR2017] 0 中国 1386395000 1 加拿大 36543321 2 印度 1338658835 3 大韩民国 51361911 4 巴西 207833831 5 德国 82657002
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6