Python / 使用 Pandas 从文本文件中读取和分组数据

我有一个文本文件如下:


Sentence:1 Polarity:N 5puan verdim o da anistonun güzel yüzünün hatırına.

Sentence:2 Polarity:N son derece sıkıcı bir filim olduğunu söyleyebilirim.

Sentence:3 Polarity:N ..saçma bir konuyu nasılda filim yapmışlar maşallah

Sentence:4 Polarity:P bence hoş vakit geçirmek için seyredilebilir.

Sentence:5 Polarity:P hoş ve sevimli bir film.

Sentence:6 Polarity:O eşcinsellere pek sempati duymamakla beraber bu filmde sanki onları sevimli göstermeye çalışmışlar gibi geldi.

Sentence:7 Polarity:O itici bir film değildi sonuçta.

Sentence:8 Polarity:N seyrederken bu kadar sinirlendiğim film hatırlamıyorum.

Sentence:9 Polarity:O  J.Aniston ın hiç mi umut yok diye sorduğu sahnede kıracaktım televizyonu!

Sentence:10 Polarity:O kimse yazmamış ben yazıyım:)

Sentence:11 Polarity:P  güzel bi pazar günü şirin bi film izlemek isteyenler için çok güzel.

我想将这些数据拆分成这样的表:


Sentence_No - Sentence_Polarity - Sentence_txt

1 - N - 5puan verdim o da anistonun güzel yüzünün hatırına.

2 - N - son derece sıkıcı bir filim olduğunu söyleyebilirim.

3 - N - ..saçma bir konuyu nasılda filim yapmışlar maşallah

4 - P - bence hoş vakit geçirmek için seyredilebilir.

所以我想我需要从“句子:”、“极性”和最后一个 txt 部分之后获取部分。我想要这样,这样我就可以对数据进行分类。


我写了下面的代码,但它不适用于此目的:


df = pd.read_csv('SU-Movie-Reviews-Sentences.txt', lineterminator='\n', names=['Sentence_No', 'Sentence_Polarity' , 'Sentence_txt'])



拉莫斯之舞
浏览 297回答 2
2回答

杨__羊羊

我把它作为一个测试字符串:test = """Sentence:1 Polarity:N 5puan verdim o da anistonun güzel yüzünün hatırına.Sentence:2 Polarity:N son derece sıkıcı bir filim olduğunu söyleyebilirim.Sentence:3 Polarity:N ..saçma bir konuyu nasılda filim yapmışlar maşallahSentence:4 Polarity:P bence hoş vakit geçirmek için seyredilebilir."""使用 Python 的re模块,您可以使用re.sub以下方法替换您想要的内容:new_string = re.sub(r"Sentence:(\d+) Polarity:(\w)", r"\1 - \2 -", test)给你你想要的格式。\1或\2分别是与组匹配的数字(\d+)或与 匹配的字母(\w)。现在您可以使用您的新字符串。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python