我以这种方式将Excel表格读入pandas DataFrame:
import pandas as pd
xl = pd.ExcelFile("Path + filename")
df = xl.parse("Sheet1")
选择每列的第一个单元格的值作为dataFrame的列名,我想指定自己的列名,我该怎么做?
答案 0 :(得分:7)
我认为在这种情况下设置它们是唯一的方法,所以如果您的DataFrame中有四列:
df.columns = ['W','X','Y','Z']
如果事先知道Excelfile中的标题是重命名它们可能更好,这会将W重命名为A等:
df.rename(columns={'W':'A', 'X':'B', etc})
答案 1 :(得分:7)
使用.parse
关键字参数调用header=None
。
df = xl.parse("Sheet1", header=None)
答案 2 :(得分:5)
此主题已有5年历史,现已过时,但仍会显示在通用搜索列表的顶部。所以我要添加这个说明。 Pandas now(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)使用"名称" with header = None和skiprows = 1。我个人更喜欢第二个选项,因为它清楚地表明输入文件不是我想要的格式,而且我正在做一些事情来解决它。
答案 3 :(得分:1)
如果excel工作表仅包含不带标题的数据
df = pd.read_excel(“ excel文件”,header = None,names = [“ A”,“ B”,“ C”])
如果excel工作表中已经包含标题名称,请使用“ skiprows”跳过该行
df = pd.read_excel(“ excel文件”,header = None,names = [“ A”,“ B”,“ C”],skiprows = 1)
答案 4 :(得分:0)
正如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.