我有一个带有多个字符串列的数据框。我想使用对数据框的多个列上的一系列有效的字符串方法。我希望这样的事情:
df = pd.DataFrame({'A': ['123f', '456f'], 'B': ['789f', '901f']})
df
Out[15]:
A B
0 123f 789f
1 456f 901f
df = df.str.rstrip('f')
df
Out[16]:
A B
0 123 789
1 456 901
显然,这是行不通的,因为str操作仅对pandas Series对象有效。什么是最合适的/最简便的方法?
功能rstrip
一起工作Series
,以便能够使用apply
:
df = df.apply(lambda x: x.str.rstrip('f'))
或者创建Series
通过stack
和最后一个unstack
:
df = df.stack().str.rstrip('f').unstack()
或使用applymap
:
df = df.applymap(lambda x: x.rstrip('f'))
最后,如果需要将功能应用于某些列:
#add columns to lists
cols = ['A']
df[cols] = df[cols].apply(lambda x: x.str.rstrip('f'))
df[cols] = df[cols].stack().str.rstrip('f').unstack()
df[cols] = df[cols].stack().str.rstrip('f').unstack()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句