清理python / pandas中的多类型数据框的值后,我要修剪字符串。我目前正在执行两条指令:
import pandas as pd df = pd.DataFrame([[' a ', 10], [' c ', 5]]) df.replace('^\s+', '', regex=True, inplace=True) #front df.replace('\s+$', '', regex=True, inplace=True) #end df.values
这很慢,我可以改善什么?
您可以使用DataFrame.select_dtypes选择string列,然后apply运行str.strip。
DataFrame.select_dtypes
string
apply
str.strip
注意:值不能types像dicts或lists,因为它们dtypes是object。
types
dicts
lists
dtypes
object
df_obj = df.select_dtypes(['object']) print (df_obj) 0 a 1 c df[df_obj.columns] = df_obj.apply(lambda x: x.str.strip()) print (df) 0 1 0 a 10 1 c 5
但是,如果只有几列,请使用str.strip:
df[0] = df[0].str.strip()