在用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. git base commond

    打开Git Bash 命令:先写 git status, 它会告诉你怎么做 1. git pull  (把git库中代码拉下来)      2. $ git status (查看状态) 3. $ gi ...

  2. javamail 发送邮件demo(文字与附件)

    package com.get.one; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multip ...

  3. 第二课作业——redis常用命令

    第二课时作业 静哥 by 2016.2.23~2016.2.22   [作业描述] 1.key string list hash结构中,每个至少完成5个命令,包含插入 修改 删除 查询,list 和h ...

  4. 原生js实现ajax方法

    下面是一个比较完整的Ajax function ajax(){ var ajaxData = { type:arguments[0].type || "GET", url:argu ...

  5. export,import ,export default的区别

    首先要知道export,import ,export default是什么 ES6模块主要有两个功能:export和importexport用于对外输出本模块(一个文件可以理解为一个模块)变量的接口i ...

  6. Scrapy框架-scrapy框架架构详解

    1.Scrapy框架介绍 写一个爬虫,需要做很多的事情.比如:发送网络请求.数据解析.数据存储.反反爬虫机制(更换ip代理.设置请求头等).异步请求等.这些工作如果每次都要自己从零开始写的话,比较浪费 ...

  7. CentOS7.1 KVM虚拟化之linux虚拟机安装(2)

    一.上传ISO文件到/data/iso下 这里使用CentOS-5.5-i386-bin-DVD.iso 二.安装CentOS5.5 CentOS7.1 安装KVM虚拟机默认磁盘格式为qcow2(推荐 ...

  8. 生成vuejs项目

    生成项目    npm i -g vue-cli > mkdir my-project && cd my-project > vue init webpack npm i ...

  9. tomcat 配置文件 介绍

    [root@mysql logs]# cd ../conf/ [root@mysql conf]# ll总用量 228drwxr-x---. 3 root root 4096 11月 15 2018 ...

  10. 关于mysql主从复制的概述与分类

    一.概述: 按照MySQL的同步复制特点,大体上可以分为三种类别: 1.异步复制: 2.半同步复制: 3.完全同步的复制: -------------------------------------- ...