【问题标题】:How to remove space "before" column name when importing csv data in Pandas在 Pandas 中导入 csv 数据时如何删除“前”列名的空格
【发布时间】:2021-07-11 20:50:51
【问题描述】:

我使用默认的 Pandas csv 读取来导入一些数据,如下所示:

df = pd.read_csv('data_file.csv')

我得到的数据框如下:

           Force [N]      Stress [MPa] 
0            0.000000       2.230649e-13
1            0.014117       1.071518e-01
2            0.135255       3.365490e+00

我在这里得到的数据框列在实际名称之前有空格(如下图所示),因此我无法使用实际的列名字符串来访问该列。

>>> df.columns
Index(['       Force [N]', '    Stress [MPa] '])

我想删除字符串之前的空格,但保留列名字符串中的空格。尝试了以下一个,但它会删除所有空格,因此列名也会更改。

df.columns=df.columns.str.replace(' ','');

在导入 csv 时,是否可以去除列名左侧的空格?我希望列名如下:

'Force [N]','Stress [MPa]'

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    为避免将列数据集skipinitialspace=True 后处理为pd.read_csv

    df = pd.read_csv('data_file.csv', skipinitialspace=True)
    

    df:

       Force [N]  Stress [MPa]
    0   0.000000  2.230649e-13
    1   0.014117  1.071518e-01
    2   0.135255  3.365490e+00
    

    df.columns:

    Index(['Force [N]', 'Stress [MPa]'], dtype='object')
    

    data_file.csv

              Force [N],      Stress [MPa] 
              0.000000,       2.230649e-13
              0.014117,       1.071518e-01
              0.135255,      3.365490e+00
    

    【讨论】:

    • OP的数据在列名后面好像也有空格
    【解决方案2】:

    replace 方法的一个更简单的替代方法是rename

    df = df.rename(columns=str.strip)
    

    或使用inplace:

    df.rename(columns=str.strip, inplace=True)
    

    【讨论】:

      【解决方案3】:

      pandas.Series.str.replace 将出现的^[ ]+|[ ]+$(列名开头或结尾的一个或多个空格)替换为""(无)

      df.columns = df.columns.str.replace("^[ ]+|[ ]+$", "", regex=True)
      

      【讨论】:

        【解决方案4】:

        可以使用Index.str.strip()(即Series.str.strip()的Index版本),如下:

        df.columns = df.columns.str.strip()
        

        输入:

        print(df.columns)
        
        Index(['       Force [N]', '    Stress [MPa] '], dtype='object')
        

        输出:

        print(df.columns)
        
        Index(['Force [N]', 'Stress [MPa]'], dtype='object')
        

        【讨论】:

          猜你喜欢
          • 2021-06-20
          • 2020-04-19
          • 2018-06-07
          • 2019-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-21
          相关资源
          最近更新 更多