我用这种方式将Excel表格读入pandas DataFrame:
import pandas as pd
xl = pd.ExcelFile("Path + filename")
df = xl.parse("Sheet1")
Run Code Online (Sandbox Code Playgroud)
选择每列的第一个单元格的值作为dataFrame的列名,我想指定自己的列名,我该怎么做?
Rut*_*ies 10
我认为在这种情况下设置它们是唯一的方法,所以如果您在DataFrame中有四个列:
df.columns = ['W','X','Y','Z']
Run Code Online (Sandbox Code Playgroud)
如果你事先知道Excelfile中的标题是什么,最好重命名它们,这会将W重命名为A等:
df.rename(columns={'W':'A', 'X':'B', etc})
Run Code Online (Sandbox Code Playgroud)
打电话.parse
与header=None
关键字参数.
df = xl.parse("Sheet1", header=None)
Run Code Online (Sandbox Code Playgroud)
如果 Excel 工作表仅包含没有标题的数据:
df=pd.read_excel("the excel file",header=None,names=["A","B","C"])
Run Code Online (Sandbox Code Playgroud)
如果 Excel 工作表已包含标题名称,则使用skiprows
跳过该行:
df=pd.read_excel("the excel file",header=None,names=["A","B","C"],skiprows=1)
Run Code Online (Sandbox Code Playgroud)
该线程已有5年的历史,现在已经过时了,但仍然显示在常规搜索列表的顶部。因此,我要添加此注释。现在的熊猫(v0.22)具有一个关键字,可以在解析Excel文件时指定列名称。使用:
import pandas as pd
xl = pd.ExcelFile("Path + filename")
df = xl.parse("Sheet 1", header=None, names=['A', 'B', 'C'])
Run Code Online (Sandbox Code Playgroud)
如果未设置header = None,则pd似乎将第一行视为标题,并在解析期间将其删除。如果确实有标头,但您不想使用它,则有两种选择,一种是(1)仅使用“名称” kwarg。或(2)使用headers = 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.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25167 次 |
最近记录: |