Как построить pd.Ряд строки

#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.series code создайте необходимую переменную.