zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Python中把数据存入csv文件
    Python中把字典和值取出来
    scrapy输出请求状态码
    scrapy发送post请求获取cookie
    Python3 Unicode转中文
    Quartus13.0破解方法
    元音字母A的发音规则
    位bit——字节Byte???
    曾经的小孩在努力奔跑!
    如何看懂的时序图?
  • 原文地址:https://www.cnblogs.com/cymwill/p/8864707.html
Copyright © 2011-2022 走看看