13列と60000行で構成されるPythonデータフレームがあり、「テキスト」(タイプオブジェクト)という名前のこれらの列の1つに、非常に長いテキストセルが含まれています。
Text ID AI BI GH JB EQ HE EN MA WE WR
2585 obstetric gynaecologicaladmissions owing abor... 2585 0 0 0 0 0 1 0 0 0 0
507 graphic illustration process flow help organiz... 507 0 0 0 0 0 0 0 0 1 0
一部の行の一部の単語が固定されています(最初のデータフレーム行:gynaecologicaladmissionsのように)。これを取り除くために、データセット全体でこれらすべてのケースを削除したいと思います。「テキスト」列の各行について、13文字を超えるすべての単語を削除することを考えました。
私はこのラインコードを試しました:
res.loc[res['Text'].str.len() < 13]
しかし、結果として2つの空の行しか提供されません。
どうすればこの問題を解決できますか?
サンプルデータフレームを見てみましょう
df
text
0 obstetric gynaecologicaladmissions owing
1 graphic illustration process flow help
2 process flow help
3 illustrationprocess flow
単語の長さを確認する必要があるため、各文字列を区切り文字(この場合はスペース)で分割し、配列をループして、長さが13以下の単語を含める必要があります。各配列をループするには、次を使用できます。 apply
def func(x):
res = list()
for word in x:
if len(word) <= 13:
res.append(word)
return " ".join(res)
df['text'] = df['text'].str.split().apply(func)
df
text
0 obstetric owing
1 graphic illustration process flow help
2 process flow help
3 flow
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加