![](/img/trans.png)
[英]Read the data from a text file and reshape the data in python using pandas
[英]Python / Read and group data from text file with 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'])
我將此作為測試字符串:
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şallah
Sentence: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)
匹配的字母。
現在,您可以使用新字符串了。
默認情況下,將DataFrame的replace
方法與regex
使用,並在使用read_csv
讀取文件時使用header=None
,默認情況下,數據集的第一行將被視為標頭,而您將無法獲得第一行。 因此,請使用fillna("0")
因為您的數字順序不一致並且為空或Nan:
df = pd.read_csv("SU-Movie-Reviews-Sentences.txt", header=None).fillna("0")
print(df)
0
0 Sentence:1 Polarity:N 5puan verdim o da anisto...
1 Sentence:2 Polarity:N son derece sıkıcı bir fi...
2 Sentence:3 Polarity:N ..saçma bir konuyu nasıl...
3 Sentence:4 Polarity:P bence hoş vakit geçirmek...
4 Sentence:5 Polarity:P hoş ve sevimli bir film.
5 Sentence:6 Polarity:O eşcinsellere pek sempati...
6 Sentence:7 Polarity:O itici bir film değildi s...
7 Sentence:8 Polarity:N seyrederken bu kadar sin...
8 Sentence:9 Polarity:O J.Aniston ın hiç mi umu...
9 Sentence:10 Polarity:O kimse yazmamış ben yazı...
10 Sentence:11 Polarity:P güzel bi pazar günü şi...
以下是如何使用replace
:
>>> df.replace('Sentence:|Polarity:', '',regex=True)
0
0 1 N 5puan verdim o da anistonun güzel yüzünün ...
1 2 N son derece sıkıcı bir filim olduğunu söyle...
2 3 N ..saçma bir konuyu nasılda filim yapmışlar...
3 4 P bence hoş vakit geçirmek için seyredilebilir.
4 5 P hoş ve sevimli bir film.
5 6 O eşcinsellere pek sempati duymamakla berabe...
6 7 O itici bir film değildi sonuçta.
7 8 N seyrederken bu kadar sinirlendiğim film ha...
8 9 O J.Aniston ın hiç mi umut yok diye sorduğu...
9 10 O kimse yazmamış ben yazıyım:)
10 11 P güzel bi pazar günü şirin bi film izleme...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.