用pandasparsingExcel数据 – 为什么在重命名列时跳过了列?

我真的很希望它的东西简单地失踪。 我正在阅读使用Pythonpandas的Excel工作簿。 当我将我的列重命名为数字1:len(列)时,它会跳过前几列。

如果单元格中没有值,似乎只能跳过它们。 即使列没有一个值,我仍然希望它数1,2,3 …

xl = pd.ExcelFile('Excel.xlsm') df = xl.parse('Worksheet1') df.columns = [str(x) for x in range(0,df.shape[1])] 

我希望有人能指出我正确的方向。 我曾尝试使用标题跳过前几列,但没有给我一个一致的和可靠的结果。 谢谢!

这是我跳过列的输出。

 #dataframe have default columns names df = pd.DataFrame({0:list('abcdef'), 1:[4,5,4,5,5,4], 2:[7,8,9,4,2,3]}) print (df) 0 1 2 0 a 4 7 1 b 5 8 2 c 4 9 3 d 5 4 4 e 5 2 5 f 4 3 #first column called index print (df.index) RangeIndex(start=0, stop=6, step=1) #check columns names (RangeIndex can be also) print (df.columns) Int64Index([0, 1, 2], dtype='int64') #add 1 to columns anmes and convert to str df.columns = (df.columns + 1).astype(str) print (df) 1 2 3 0 a 4 7 1 b 5 8 2 c 4 9 3 d 5 4 4 e 5 2 5 f 4 3 print (df.columns) Index(['1', '2', '3'], dtype='object') 

更改列名称的另一个解决scheme是rename

 df = df.rename(columns = lambda x: str(x + 1)) print (df.columns) Index(['1', '2', '3'], dtype='object') 

如果要创build1,2,3..N范围string列:

 df = pd.DataFrame({'a':list('abcdef'), 'f':[4,5,4,5,5,4], 'm':[7,8,9,4,2,3]}) print (df) afm 0 a 4 7 1 b 5 8 2 c 4 9 3 d 5 4 4 e 5 2 5 f 4 3 df.columns = pd.RangeIndex(1, df.shape[1] + 1).astype(str) print (df.columns) Index(['1', '2', '3'], dtype='object') print (df) 1 2 3 0 a 4 7 1 b 5 8 2 c 4 9 3 d 5 4 4 e 5 2 5 f 4 3 

这里是一个Python和Excel的教程:
https://github.com/python-excel/tutorial/raw/master/python-excel.pdf
第10页和第11页有如何行和列切片。 阅读文档时有更多的选项。
GitHub页面
https://github.com/python-excel/tutorial

另一种select是删除
https://docs.aspose.com/display/cellsjava/Inserting+and+Deleting+Rows+and+Columns+in+Python
我希望这有帮助。