私のデータフレームは、
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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加