如何从 pandas 数据框中的行中删除空格?

问题描述 投票:0回答:1

我有一个很大的 Excel 文件,我正在查看其中的一行,我想从文本条目中删除前导和尾随空格。

我的代码如下:

df = pd.read_excel(excel_file_name)
layer = df.loc[[layer_index]] # layer is a single row in df and layer_index is an integer
print(layer.iloc[:,37:42])
for col in layer.columns:
    if type(layer[col]) == str:
        layer[col] = layer[col].map(str.strip)
print(layer.iloc[:,37:42])

第 41 列包含大量前导和尾随空格,因此 Excel 条目类似于

     Cell 3 ramp          
。输出是:

   Unnamed: 37 Unnamed: 38 Unnamed: 39                           Unnamed: 40 Unnamed: 41
22         NaN         Ga2         NaN                       Cell 3 ramp             NaN
   Unnamed: 37 Unnamed: 38 Unnamed: 39                           Unnamed: 40 Unnamed: 41
22         NaN         Ga2         NaN                       Cell 3 ramp             NaN

但我希望它能够删除空格:

   Unnamed: 37 Unnamed: 38 Unnamed: 39                           Unnamed: 40 Unnamed: 41
22         NaN         Ga2         NaN                       Cell 3 ramp             NaN
   Unnamed: 37 Unnamed: 38 Unnamed: 39  Unnamed: 40 Unnamed: 41
22         NaN         Ga2         NaN  Cell 3 ramp         NaN

为什么我的代码不起作用?

python-3.x pandas removing-whitespace
1个回答
0
投票

示例

我们需要最小且可重复的示例。

import pandas as pd
df = pd.DataFrame({'col1':['a', 'b', '  c'], 'col2':[1, 2, 3], 'col3':['   ab   ', '  bc', 'd']})

df

col1  col2      col3
0    a     1     ab   
1    b     2        bc
2    c     3         d

代码

这是从所有字符串列中删除空格的代码。

cols = df.select_dtypes('object').columns
df[cols] = df[cols].apply(lambda x: x.str.strip())

df

 col1  col2 col3
0    a     1   ab
1    b     2   bc
2    c     3    d
© www.soinside.com 2019 - 2024. All rights reserved.