2019 5
2019 5
2018 5
...
在每个DF中,每个值中都出现这1个多余的空格。我尝试在DF上运行.strip(),但不存在属性
我为每个df [column] .str.strip()尝试了一个',但是每一列中都有各种数据类型... dtypes:float64(6),int64(4),object(14),所以这错误。
关于如何将函数应用于整个数据框的任何想法,如果有的话,什么函数/方法?如果不是最好的方法是什么?
答案 0 :(得分:0)
您应该使用9d5f269e42d4ca76
函数来执行此操作:
apply()
您可以将此功能分别应用于每列:
df['Year'] = df['Year'].apply(lambda x:x.strip() )
答案 1 :(得分:0)
处理错误:
for col in df.columns:
try:
df[col] = df[col].str.strip()
except AttributeError:
pass
通常情况下,我会选择object
dtype,但是如果数据杂乱无章,无法在对象容器中存储数字数据,那还是有问题的。
import pandas as pd
df = pd.DataFrame({'foo': [1, 2, 3], 'bar': ['seven ']*3})
df['foo2'] = df.foo.astype(object)
for col in df.select_dtypes('object'):
df[col] = df[col].str.strip()
#AttributeError: Can only use .str accessor with string values!
答案 2 :(得分:0)
尝试一下:
for column in df.columns:
df[column] = df[column].apply(lambda x: str(x).replace(' ', ' '))