在Pandas中导入csv数据时,如何删除列名“之前”的空格

2024-10-06 12:21:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用默认的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]'

Tags: columnscsv数据字符串名称dfreaddata
3条回答

要避免将列数据集skipinitialspace=True后处理为^{},请执行以下操作:

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

^{}^{}(列名开头或结尾的一个或多个空格)替换为""(无)

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

replace方法的一个更简单的替代方法是^{}

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

或使用inplace

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

相关问题 更多 >