短く書けば、
python
1df['hashtag'] = df['tag'].apply(lambda s: ','.join([word for word in s.split(',') if word[0] == '#']))
実行結果は、
python
1>>> import pandas as pd
2>>>
3>>> df = pd.DataFrame({'tag': ['#A,a,#AA', 'b,#B,BB', 'CC, c, cc', '#d,DD']})
4>>>
5>>> print(df)
6 tag
70 #A,a,#AA
81 b,#B,BB
92 CC, c, cc
103 #d,DD
11>>> df['hashtag'] = df['tag'].apply(lambda s: ','.join([word for word in s.split(',') if word[0] == '#']))
12>>> print(df)
13 tag hashtag
140 #A,a,#AA #A,#AA
151 b,#B,BB #B
162 CC, c, cc
173 #d,DD #d
18>>> print(df[['hashtag']])
19 hashtag
200 #A,#AA
211 #B
222
233 #d
です。
長く書けば、
python
1def get_hash(tags):
2 taglist = tags.split(',')
3 hashtaglist = []
4 for tag in taglist:
5 if tag[0] == '#':
6 hashtaglist.append(tag)
7 hashtags = ','.join(hashtaglist)
8 return hashtags
9
10df['hashtag'] = df['tag'].apply(get_hash)
です。
詳しいことが知りたければ、以下をお読みください。
Python, splitでカンマ区切り文字列を分割、空白を削除しリスト化
Pythonでリスト(配列)に要素を追加するappend, extend, insert
Pythonで文字列を連結・結合(+演算子、joinなど)
Pythonリスト内包表記の使い方
pandasで要素、行、列に関数を適用するmap, applymap, apply
Pythonのlambda(ラムダ式、無名関数)の使い方
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。