熊猫,read_excel,usecols与列表输入一起生成一个空的数据框

时间:2018-07-07 02:08:05

标签: python pandas

实际上我只想将Excel中的特定列读入python数据框 我的代码是

import pandas as pd
file = pd.read_excel("3_Plants sorted on PLF age cost.xlsx",sheet_name="Age>25",index_col="Developer",usecols="Name of Project")

但是我得到一个空的数据帧作为输出,但是当我使用

import pandas as pd
file = pd.read_excel("3_Plants sorted on PLF age cost.xlsx",sheet_name="Age>25",index_col="Developer",usecols=2)

我得到了想要的结果,

因为我必须使用循环来处理许多文件,并且列的位置不断变化,所以我必须按名称而不是位置进行操作。

由于我的excel文件太大(150 MB),我无法在数据框中加载完整文件并使用df["column_name"],这将使我的处理过程非常缓慢,并且有时会出现内存错误。

先谢谢了。

2 个答案:

答案 0 :(得分:0)

如Tomas Farias所述,usecols不采用单元格值。一种可能的方法是读取几行并找到列的位置,然后第二次读取文件。

import pandas as pd
col = pd.read_excel("3_Plants sorted on PLF age cost.xlsx",sheet_name="Age>25", nrows=2).columns
k=col.get_loc('Name of Project')+1
file = pd.read_excel("3_Plants sorted on PLF age cost.xlsx", sheet_name="Age>25", index_col="Developer", usecols=k)

答案 1 :(得分:0)

您可以将.xlsx文件保存/转换为.csv,然后使用: pd.read_csv('filename.csv', usecols=[])