【问题标题】:Pandas read_csv has correct headers but column names is NonePandas read_csv 具有正确的标题,但列名是 None
【发布时间】:2019-08-10 13:27:11
【问题描述】:

我正在使用 pandas 读取一个简单的 csv 文件:

import pandas as pd
df = pd.read_csv('spread.csv', header=0)
df

但是试图列出列名却没有得到:

list(df.columns.names)

输出只是无。这似乎与上面的输出或documentation 不一致。我做错了什么还是这里发生了什么?

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    您没有分配 columns names ,这就是为什么当您调用 names 时默认输出显示为 [None]

    df.columns.names
    Out[934]: FrozenList([None])
    list(df.columns.names)
    Out[935]: [None]
    
    df.columns.names=['SOMETHING']
    df
    Out[931]:
    SOMETHING  id  A  B
    0           1  1  2
    1           2  2  3
    df.columns.names
    Out[932]: FrozenList(['SOMETHING'])
    list(df.columns.names)
    Out[937]: ['SOMETHING']
    

    如果您只想要数据框列名称

    list(df)
    

    Data Input 
    
    data = '''\
    id  A B
    1   1 2
    2   2 3 '''
    
    
    import io
    import pandas as pd
    
    df = pd.read_csv(io.StringIO(data), sep='\s+')
    

    【讨论】:

      【解决方案2】:

      如果您只想获取 A、B、C、D 列名,您只需要这样做

      print(df.columns)
      

      【讨论】:

        猜你喜欢
        • 2015-06-28
        • 2015-02-04
        • 2017-04-07
        • 1970-01-01
        • 2018-12-04
        • 2016-09-29
        相关资源
        最近更新 更多