#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')
變革列名的另一種解決方案是rename
:
df = df.rename(columns = lambda x: str(x + 1))
print (df.columns)
Index(['1', '2', '3'], dtype='object')
如果想創建1,2,3..N
範圍字符串列:
df = pd.DataFrame({'a':list('abcdef'),
'f':[4,5,4,5,5,4],
'm':[7,8,9,4,2,3]})
print (df)
a f m
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
你需要'df = pd.read_excel('Excel.xlsm','Worksheet1',header = None,skiprows = 1)'? – jezrael
第一列叫'索引' - 所以也許這就是爲什麼不能重命名它的原因。在用'heade = None'讀取後得到int列名稱,所以可以使用'df.columns =(df.columns + 1).astype(str)' – jezrael
使用read_excel而不是解析爲我工作並且實際上解決了其他一些問題我遇到的問題,謝謝! – Ciaran