dataframe 列名重新排序
生活随笔
收集整理的這篇文章主要介紹了
dataframe 列名重新排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在用list包含多個dict的模式生成dataframe時,由于dict的無序性,而uci很多數據的特征名直接是1,2,3...,生成的dataframe和原生的不一樣,
為了方便觀看和使用,我們將其列名排序:
有以下兩種方法(都不包含y列的情況下):
1、(我的):
df.columns = df.columns.astype(int) df.sort_index(axis=1,inplace=True)先將列名從字符串轉為int型,然后再對列名排序。
?
2、(網上看到的):
對于這樣的數據:?['Q1.3','Q6.1','Q1.2','Q1.1',......]?
要變為這樣的:?['Q1.1','Q1.2','Q1.3',.....'Q6.1',......]?
?
df.reindex_axis(sorted(df.columns), axis=1)這樣的話,似乎對于字符串型數據也可以排序(但如果要解決我那個問題,也要先進行數據類型的轉換)
?
?
最后,附上完整的從uci.txt文本數據類型轉換為dataframe表格式的numerical類型代碼:
X,y = [],[] with open("ionosphere_scale.txt") as f:lines = f.readlines()for line in lines:line = line.split()y.append(line[0])X.append({i.split(":")[0]:i.split(":")[1] for i in line[1:]})df = pd.DataFrame(X,dtype="float") n_feat = len(df.columns) df.columns = df.columns.astype(int) df.sort_index(axis=1,inplace=True) df["y"] = np.array(y,dtype=float) print(df.info()) df.to_excel("ionosphere_scale.xlsx",index=None)?
?
?
最后,mark一篇關于數據類型轉換的文章:https://vimsky.com/article/3694.html
?
轉載于:https://www.cnblogs.com/cymwill/p/8864707.html
總結
以上是生活随笔為你收集整理的dataframe 列名重新排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用@jsonView注解来实现自定义返
- 下一篇: hadoop中如何动态更新集群队列和容量