一、问题描述
读取csv或Excel文件为dataframe时, 经常存在columns和index首尾出现空格的情况,导致使用loc切片出现keyerror问题。
二、问题复现
import pandas as pd
data = pd.DataFrame({' a ': [0, 1, 2, 3, 4], ' b ': [5, 6, 7, 8, 9]})
print(data.loc[1, 'a'])
运行上述代码,创建一个columns带有首位空格的dataframe,此时我们使用loc切片会出现以下结果。
三、问题解决
使用str的strip( )函数可以去除首尾空格,再赋值回data的columns,index同理
import pandas as pd
data = pd.DataFrame({'a ': [0, 1, 2, 3, 4], ' b ': [5, 6, 7, 8, 9]})
data.columns = data.columns.str.strip()
print(data.loc[1, 'a'])
此时运行代码可正确得到loc切片结果