我以这种方式将 Excel 表读入 pandas DataFrame:
import pandas as pd
xl = pd.ExcelFile("Path + filename")
df = xl.parse("Sheet1")
每列的第一个单元格的值被选为dataFrame的列名,我想指定自己的列名,我该怎么做?
我认为在这种情况下,事后设置它们是唯一的方法,所以如果你的 DataFrame 中有四列:
df.columns = ['W','X','Y','Z']
如果您事先知道 Excelfile 中的标题可能更好地重命名它们,这会将 W 重命名为 A,等等:
df.rename(columns={'W':'A', 'X':'B', etc})
该线程已有 5 年历史,现已过时,但仍显示在通用搜索列表的顶部。所以我添加了这个注释。Pandas 现在(v0.22)有一个关键字来指定解析 Excel 文件的列名。利用:
import pandas as pd
xl = pd.ExcelFile("Path + filename")
df = xl.parse("Sheet 1", header=None, names=['A', 'B', 'C'])
如果没有设置 header=None,pd 似乎将第一行视为标题并在解析过程中将其删除。如果确实有一个标题,但你不想使用它,你有两个选择,要么(1)只使用“名称”kwarg;或 (2) 使用 header=None 和 skiprows=1 的“名称”。我个人更喜欢第二个选项,因为它清楚地表明输入文件不是我想要的格式,并且我正在做一些事情来解决它。
正如 Ram 所说,这篇文章排在首位,可能对某些人有用.... 在 pandas 0.24.2(也可能更早)中,read_excel 本身具有忽略源标题并提供您自己的 col 名称和其他一些好的控件:
DID = pd.read_excel(file1, sheet_name=0, header=None, usecols=[0, 1, 6], names=['A', 'ID', 'B'], dtype={2:str}, skiprows=10)
# for example....
# usecols => read only specific col indexes
# dtype => specifying the data types
# skiprows => skip number of rows from the top.
call .parse
with header=None
keyword argument.
df = xl.parse("Sheet1", header=None)
如果 excel 表只包含没有标题的数据
df=pd.read_excel("the excel file",header=None,names=["A","B","C"])
如果 excel 表已经包含标题名称,则使用 "skiprows" 跳过行
df=pd.read_excel("the excel file",header=None,names=["A","B","C"] ,skiprows=1)