Dataframe.str失败,因为整列是空白的

时间:2018-05-10 02:57:33

标签: python python-3.x pandas

我的数据框有很多列。执行时我遇到了错误,如

Can only use .str accessor with string values, which use np.object_ dtype in pandas

我认为这是因为我的列在该特定场合只有Nan值而且.str在代码上失败

df1['Merchant_old']=df1['Merchant_old'].str.lower().str.strip()

我不应该如何使用isna()仅在整个列不为空时才运行上述步骤。

2 个答案:

答案 0 :(得分:2)

我认为您df.col的类型是np.float。您可以使用strdf.col.astype(np.object_).str一起使用。这将使np.NaN保留在最终输出中。

答案 1 :(得分:1)

您可以在此处使用isnullall

创建模板
df=pd.DataFrame({'A':['A',np.nan,'B'],'B':[np.nan,np.nan,np.nan]})

s=df.isnull().all()
df.loc[:,s[~s].index]=df.loc[:,s[~s].index].apply(lambda x : x.str.lower().str.strip())
df
     A   B
0    a NaN
1  NaN NaN
2    b NaN