我在数据框中有一些看起来像这样的数据:
Japanese
--------
明日|Adverb の|Case 天気|Weather は|Case なんですか
使用Pandas,我正在寻找一种在新列中返回此值的方法
Tag
------
Adverb, Case, Weather
到目前为止,我已经可以使用
df['Tag'] = df.iloc[:, 0].str.replace('[^a-zA-Z]', ' ')
获得
Tag
------
Adverb Case Weather
但是当我跑步
df['Tag'] = df['Tag'].str.replace(' ', ',')
我明白了
Tag
------
,,,,Adverb,,,Case,,,,Weather,,,Case,,,,,,
我认为我应该使用str.extract而不是replace,但是在这种情况下,我还会收到一条错误消息。
答案 0 :(得分:2)
pandas.Series.str.findall
s = df.Japanese.str.findall('(?i)[a-z]+')
pd.Series([', '.join({*x}) for x in s], s.index)
0 Adverb, Weather, Case
dtype: object
s = df.Japanese.str.findall('(?i)[a-z]+')
pd.Series([', '.join(sorted({*x})) for x in s], s.index)
0 Adverb, Case, Weather
dtype: object