【发布时间】:2018-05-31 19:27:37
【问题描述】:
我有一个简单的数据框:
a b
0 horse cat
1 dog elephant
运行:
df.loc[:,'a'].apply(lambda x: x.upper())
或
df.loc[:,'b'].apply(lambda x: x.upper())
将相应列中的动物大写。但是,运行
df.loc[:,'a':'b'].apply(lambda x: x.upper())
或
df.loc[:,['a','b']].apply(lambda x: x.upper())
导致“AttributeError: ("'Series' object has no attribute 'upper'", 'occurred at index a')”。
显然,我想知道如何修复它(即,能够同时将两列都大写)。但我也想知道一个列如何能够自己拥有属性“upper”,但是当 lambda 作为多个列的一部分应用于它时会丢失它。
【问题讨论】:
-
你看看使用
pd.DataFrame.apply和pd.Series.apply的区别。