实际上我只想将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"]
,这将使我的处理过程非常缓慢,并且有时会出现内存错误。
先谢谢了。
答案 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=[])