在用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

dataframe 列名重新排序的更多相关文章

  1. pandas 修改 DataFrame 列名

    问题: 有一个DataFrame,列名为:['$a', '$b', '$c', '$d', '$e'] 现需要改为:['a', 'b', 'c', 'd', 'e'] 有何办法? import pan ...

  2. Pandas——修改DataFrame列名

    #生成一个数据框 import pandas as pd a = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]}) #直接修改:缺点必须写明每 ...

  3. 获取DataFrame列名的3种方法

    df= pd.DataFrame({'a': range(10, 20), 'b': range(20, 30)}) df 1.链表推倒式 [column for column in df][a,b] ...

  4. datatable 列名重新排序

    1. DataTable.Columns["MONEY"].SetOrdinal[4]; 2.dt = dt.DefaultView.ToTable(false, listarr. ...

  5. R dataframe 列名包含减号,列名自动变为点

    d<- data.frame(x = c(0, 1)) d<- data.frame(d, y = c(0,1)) names(d)[2]<- "a.-5" d ...

  6. 大数据入门到精通11-spark dataframe 基础操作

    // dataframe is the topic 一.获得基础数据.先通过rdd的方式获得数据 val ny= sc.textFile("data/new_york/")val ...

  7. R 语言的Dataframe常用操作

    上节我们简单介绍了Dataframe的定义,这节我们具体来看一下Dataframe的操作 首先,数据框的创建函数为 data.frame( ),参考R语言的帮助文档,我们来了解一下data.frame ...

  8. 『Kaggle』分类任务_决策树&集成模型&DataFrame向量化操作

    决策树这节中涉及到了很多pandas中的新的函数用法等,所以我单拿出来详细的理解一下这些pandas处理过程,进一步理解pandas背后的数据处理的手段原理. 决策树程序 数据载入 pd.read_c ...

  9. pandas基础(1)_Series和DataFrame

    1:pandas简介 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标 ...

随机推荐

  1. Oracle数据库设计第三范式

    一.数据库设计范式及其意义和不足 数据库的设计范式是数据库设计所需要满足的规范,数据库的规范化是优化表的结构和优化把数据组织到表中的方式,这样使数据更明确,更简洁.实践中,通常把一个数据库分成两个或多 ...

  2. Powershell Get File/Disk Size

    知识点: 1.获取路径中的文件夹:Get-ChildItem $startFolder  | Where-Object {$_.PSIsContainer -eq $True} | Sort-Obje ...

  3. Es 中一个分片一般设置多大

    百度Elasticsearch-产品描述-介绍-百度云 https://cloud.baidu.com/doc/BES/FAQ.html#.2C.BB.93.08.C9.7E.2F.A3.E7.35. ...

  4. linux下EOF写法梳理 自动新建分区并挂载的脚本

    linux下EOF写法梳理 - 散尽浮华 - 博客园 https://www.cnblogs.com/kevingrace/p/6257490.html 在平时的运维工作中,我们经常会碰到这样一个场景 ...

  5. springmvc控制器controller单例问题

    springmvc controller默认的是单例singleton的,具体可以查看注解scope可以一目了然. 单例的原因有二: 1.为了性能. 2.不需要多例. 1.这个不用废话了,单例不用每次 ...

  6. C#中的另类语法

    一..net中return的另类写法: 不知道是从3.5还是从4.0开始C#语法中的return有了新的写法示例如下: public string functionDemo() {       str ...

  7. Css选择器定位详解

    1.使用 class 属性来定位元素,方法如下: driver.findElement(By.cssSelector("input.login")); 即可以先指定一个 HTML的 ...

  8. 《深入理解Linux网络技术内幕》阅读笔记 --- 路由基本概念

    一.路由的基本概念 1.一条路由就是一组参数,这些参数存储了往一个给定目的地转发流量所需的信息,而一条路由所需的最少的参数集合为:(1)目的网络,(2)出口设备,(3)下一跳网关 2.路由中的相关术语 ...

  9. 002-主流区块链技术特点及Hyperledger Fabric V0.6版本特点

    一.主流区块链技术特点 二.HyperLedger子项目 三.Hyperledger fabric架构 V0.6逻辑架构: V0.6区块链网络 对应的0.6版本的运行时架构: 0.6版本的架构特点是: ...

  10. zookeer安装

    解压:tar xf zookeeper-3.4.9.tar.gz进入目录cd /opt/zookeeper-3.4.9/ 编辑配置文件:vim zoo.cfg# The number of milli ...