【问题标题】:Left justify headers when reading a CSV file using pandas使用 pandas 读取 CSV 文件时左对齐标题
【发布时间】:2017-10-04 13:36:39
【问题描述】:

我正在阅读 .csv 文件并应用一个标题,该标题是我想要的列名的列表。

df=pd.read_csv(myfile,names=header)

如果 .csv 文件的列数多于“标题”列表中的名称,则列名会自动右对齐,以便第一列或左列标题为空白。将标头应用于 DataFrame 时,有什么方法可以左对齐吗?现在我正在做的是在末尾用空白列填充“标题”列表,作为这样的解决方法:

header = ['col1','col2','col3','','',]

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    我认为 pandas 不支持此功能。但是,我认为一个好的解决方法是:

    header = ['col1', 'col2', 'col3']
    
    df = pd.read_csv(myfile)
    df.columns = header + [''] * (len(df.columns) - len(header))
    

    这样,您无需对填充进行硬编码。

    【讨论】:

      【解决方案2】:

      您可以使用从您指定的列开始的生成器,然后继续生成 '' 以获得无穷大。使用它来重命名您的列。

      考虑csv 中的文本以及随后的调用来阅读它

      import pandas as pd
      from itertools import chain, repeat
      
      csv = """a1,b1,c1,d1
      a2,b2,c2,d2"""
      
      pd.read_csv(pd.io.common.StringIO(csv), header=None).rename(
          columns=lambda x, c=chain(['a', 'b'], repeat('')): next(c)
      )
      
          a   b        
      0  a1  b1  c1  d1
      1  a2  b2  c2  d2
      

      【讨论】:

        猜你喜欢
        • 2019-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-18
        • 1970-01-01
        • 2021-02-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多