这可能是我基础理解上的误解,但我期望
文档在这个话题上相对缺乏。我漏掉了什么?
pandas.Series.str
将 pandas.Series
的值转换为字符串。
然而,当我执行以下操作时,系列中的数字值被转换为 np.nan
:df = pd.DataFrame({'a': ['foo ', 'bar', 42]})
df = df.apply(lambda x: x.str.strip() if x.dtype == 'object' else x)
print(df)
Out:
a
0 foo
1 bar
2 NaN
如果我先对每列应用str
函数,那么数值将被转换为字符串而不是np.nan
:
df = pd.DataFrame({'a': ['foo ', 'bar', 42]})
df = df.apply(lambda x: x.apply(str) if x.dtype == 'object' else x)
df = df.apply(lambda x: x.str.strip() if x.dtype == 'object' else x)
print(df)
Out:
a
0 foo
1 bar
2 42
文档在这个话题上相对缺乏。我漏掉了什么?