#python #pandas #csv
#python #панды #csv
Вопрос:
как я могу создать объект pd.Series из строки (импортированной в виде текстового файла), который содержит каждую ячейку в качестве поля данных?
строка:
'Hegselmann, R. (2012). Thomas C. Schelling and the Computer: Some Notes on Schelling’s Essay „Letting a Computer Help with the Work“. Journal of Artificial Societies and Social Simulation, 15(4). http://jasss.soc.surrey.ac.uk/15/4/9.htmlnDowney, A. (2012). Think Python. How to Think Like a Computer Scientist. O’Reilly Media, Incorporated. http://www.greenteapress.com/thinkpython/html/index.htmlnBird, S., Klein, E., amp; Loper, E. (2009). Natural Language Processing with Python—Analyzing Text with the Natural Language Toolkit. O’Reilly Media. https://sites.google.com/site/naturallanguagetoolkit/book'
Сначала я меняю файл на csv
import pandas as pd
import numpy as np
df = pd.read_fwf('E1_TM_1.txt')
df.to_csv('E1_TM_1.csv')
Если я хочу сейчас представить его как вектор (это правильный термин?)
Это должно выглядеть как простая таблица. Первый столбец начинается с индекса 1, второй столбец содержит все ссылки из строки.
Я пробовал код, но он выглядит не так, как я хочу.
pd.read_fwf('E1_TM_1.csv', encoding='utf8', index_col=0)
,"Hegselmann, R. (2012). Thomas C.","Schelling and the Computer: Some Notes on Schelling’s Essay „Letting a Computer Help with the Work“. Journal of Artificial Societies and Social Simulation, 15(4). http://jasss.soc.surrey.ac.uk/15/4/9.html"
0,"Downey, A. (2012). Think Python.","How to Think Like a Computer Scientist. O’Reilly Media, Incorporated. http://www.greenteapress.com/thinkpython/html/index.html"
1,"Bird, S., Klein, E., amp; Loper, E.",(2009). Natural Language Processing with Python—Analyzing Text with the Natural Language Toolkit. O’Reilly Media. https://sites.google.com/site/naturallanguagetoolkit/book
Кроме того, кодировка в utf8 не работала с полной строкой.
Ответ №1:
Прежде всего, я рекомендую вам разделить строку с помощью ‘ ‘:
string1 = "Hegselmann, R. (2012). Thomas C. Schelling and the Computer: Some Notes on Schelling’s Essay „Letting a Computer Help with the Work“. Journal of Artificial Societies and Social Simulation, 15(4). http://jasss.soc.surrey.ac.uk/15/4/9.htmlnDowney, A. (2012). Think Python. How to Think Like a Computer Scientist. O’Reilly Media, Incorporated. http://www.greenteapress.com/thinkpython/html/index.htmlnBird, S., Klein, E., amp; Loper, E. (2009). Natural Language Processing with Python—Analyzing Text with the Natural Language Toolkit. O’Reilly Media. https://sites.google.com/site/naturallanguagetoolkit/book."
list_string =string1.split(' ')
import pandas as pd
import numpy as np
np.array(list_string)
Честно говоря, вы кратко описываете задачу… и я думаю, перед созданием массива вы могли бы очистить список и выбрать слова, которые вам нужны.
Комментарии:
1. Это задача для моего университетского курса. Первая часть задачи — «Прочитать объект string из файла E1_TM_1.txt .» Это сработало, и я скопировал строку в свой пост. Я совершенно уверен, что мой профессор не хочет, чтобы мы разделяли строку, потому что эта строка здесь короткая. Но в случае очень большого, его невозможно разделить соответствующим образом. Вторая часть задачи — «Построить объект pd.Series из строки, которая содержит каждую ячейку в качестве поля данных». Я думаю, что это должно выглядеть как вектор: 0 Хегсельман, […] 1 Дауни, […] 2 Птица, […]
2. Селина, если я тебя понял, твой учитель хочет, чтобы ты создала pd.Series с именами авторов. Для этой задачи я рекомендую вам посмотреть «Регулярное выражение». И полезным инструментом для вас будет ссылка , по которой вы могли бы создать «регулярное выражение», проверьте его в regex101. После этого с помощью цикла найдите всех авторов и с помощью command:
code
pd.seriescode
создайте необходимую переменную.