python - 如何反转熊猫数据框中的字符串?
问题描述
我的数据框就像,
ID col1
1 Michael Owen
2 Stephen Curry
3 Messi, Lionel
4 James, LeBron
我试图颠倒那些被分割的名字的顺序", "
。
我的代码是,
df['col1'] = df.col1.str.split().apply(lambda x: ', '.join(x[::-1]))
但它会反转所有行,即使名称被" "
.
ID col1
1 Owen, Michael
2 Curry, Stephen
3 Lionel, Messi
4 LeBron, James
然后我尝试了
df.loc[df['col1'].str.contains(", ").split("col1")].apply(lambda x: ', '.join(x[::-1]))
它给了我一个错误,
AttributeError: 'Series' object has no attribute 'split'
我怎么解决这个问题?
解决方案
使用Series.where
:
df['col1']=( df.col1.str.split()
.apply(lambda x: ', '.join(x[::-1]).rstrip(','))
.where(df['col1'].str.contains(','),df['col1']) )
ID col1
0 1 Michael Owen
1 2 Stephen Curry
2 3 Lionel, Messi
3 4 LeBron, James
如果你想放弃','
df['col1']=( df.col1.str.split()
.apply(lambda x: ', '.join(x[::-1]).rstrip(','))
.where(df['col1'].str.contains(','),df['col1'])
.str.replace(',','') )
ID col1
0 1 Michael Owen
1 2 Stephen Curry
2 3 Lionel Messi
3 4 LeBron James
推荐阅读
- java - Java 8 RestService:在 Spring bean 中设置响应超时的有效方法
- rest - 是否有任何框架可以在微服务中实现节流机制?
- c++ - 使用 TTF_OpenRW 加载字体时使用 SDL2 TTF_RenderText 获取段错误?
- php - 如何进行具有唯一值和有限字符的数组组合?
- docker - 尝试在 Docker 中运行 Node Red 时端口不可用
- azure-data-factory-2 - 在 Azure 数据工厂中运行数据流比在 Azure SSIS 数据流中运行慢 4 倍
- node.js - Nodejs谷歌认证休息api
- python - 将变量传递给 MySQL 查询
- python - 如何将具有较大时间增量的熊猫记录拆分为具有较小时间增量的多个记录?
- python - 使用线程时对象不可调用?