PythonDataFrame—数据按索引而不是行显示
我刚开始学习Python。我在为书评练习网络阅读。抓取工作正常,我正在“附加”每个页面的数据,然后将其全部转储到数据框中。我的问题是,我不知道如何让数据以列、行而不是列、索引的形式显示。我想所有的书名下的“标题”和作者下的“作者”,等等。每个索引是一个不同的网页。此示例包括三个刮取的URL。我的数据帧代码是:PythonDataFrame—数据按索引而不是行显示,python,pandas,dataframe,indexing,Python,Pandas,Dataframe,Indexing,我刚开始学习Python。我在为书评练习网络阅读。抓取工作正常,我正在“附加”每个页面的数据,然后将其全部转储到数据框中。我的问题是,我不知道如何让数据以列、行而不是列、索引的形式显示。我想所有的书名下的“标题”和作者下的“作者”,等等。每个索引是一个不同的网页。此示例包括三个刮取的URL。我的数据帧代码是: titlesFin = [] authorsFin = [] ratingsFin = [] reviewsFin = [] # find container with all book
titlesFin = []
authorsFin = []
ratingsFin = []
reviewsFin = []
# find container with all books per page
books = soup.find_all('tr', itemtype="http://schema.org/Book")
titles = [removeWhite(title.find('a', class_='bookTitle').text).strip()
for title in books]
titlesFin.append(titles)
authors = [author.find('a', class_='authorName').text for author in books]
authorsFin.append(authors)
reviews = soup.find_all('span', class_='minirating')
reviewNums = [find_numbers(rate.text.strip()) for rate in reviews]
ratings1, numRev = zip(*reviewNums)
ratingsFin.append(ratings1)
reviewsFin.append(numRev)
bookList = pd.DataFrame({
'Title': titlesFin,
'Author': authorsFin,
'Rating': ratingsFin,
'Reviews': reviewsFin, })
bookList.to_csv('GoodReadsxx.csv')
print(bookList)
我当前的数据帧输出:
Title \
0 [The Hunger Games (The Hunger Games, #1), Harr...
1 [Moby-Dick or, the Whale, The Red Tent, The Se...
2 [Thirteen Reasons Why, Wicked: The Life and Ti...
Author \
0 [Suzanne Collins, J.K. Rowling, Harper Lee, Ja...
1 [Herman Melville, Anita Diamant, Sue Monk Kidd...
2 [Jay Asher, Gregory Maguire, James Clavell, Jo...
Rating \
0 (4.33, 4.50, 4.28, 4.26, 3.59, 4.37, 3.94, 4.2...
1 (3.50, 4.18, 4.05, 4.33, 4.56, 4.01, 4.26, 4.5...
2 (3.93, 3.53, 4.39, 3.98, 4.06, 4.20, 4.35, 4.2...
Reviews
0 (6,144,447, 2,387,048, 4,310,467, 2,855,826, 4...
1 (466,455, 506,936, 1,089,483, 631,246, 2,462,7...
2 (744,214, 563,831, 141,685, 371,866, 448,159, ...
来自几个列表的数据:
Title \
0 [The Hunger Games (The Hunger Games, #1), Harr...
1 [Moby-Dick or, the Whale, The Red Tent, The Se...
2 [Thirteen Reasons Why, Wicked: The Life and Ti...
Author \
0 [Suzanne Collins, J.K. Rowling, Harper Lee, Ja...
1 [Herman Melville, Anita Diamant, Sue Monk Kidd...
2 [Jay Asher, Gregory Maguire, James Clavell, Jo...
Rating \
0 (4.33, 4.50, 4.28, 4.26, 3.59, 4.37, 3.94, 4.2...
1 (3.50, 4.18, 4.05, 4.33, 4.56, 4.01, 4.26, 4.5...
2 (3.93, 3.53, 4.39, 3.98, 4.06, 4.20, 4.35, 4.2...
Reviews
0 (6,144,447, 2,387,048, 4,310,467, 2,855,826, 4...
1 (466,455, 506,936, 1,089,483, 631,246, 2,462,7...
2 (744,214, 563,831, 141,685, 371,866, 448,159, ...
非常感谢。我添加了(编辑的帖子)更多的代码,如果有必要,我可以添加所有代码,因为它不会太多。再看一眼,你的csv很好,只是显示设置。当您在Excel或记事本中打开它时,您将看到列位于顶部。(重复的索引应该会提示您)我仍然无法建立您的列表,因为您正在抓取的请求/URL不包括在内,但是您在它们周围有一个额外的
[]
,而不是基于底部片段的1d列表。如果执行authorsFin.extend(authors)
(其他人也一样)会发生什么情况?这可以确保您的列表是扁平的。如果它不能解决问题,请显示请求和URL以生成可运行代码。不,csv也有同样的问题。单元格a1='Title'和a2=该单元格中的所有标题。其他标题也一样。哇!!就这样!扩展而不是附加!非常感谢。非常感谢。我添加了(编辑的帖子)更多的代码,如果有必要,我可以添加所有代码,因为它不会太多。再看一眼,你的csv很好,只是显示设置。当您在Excel或记事本中打开它时,您将看到列位于顶部。(重复的索引应该会提示您)我仍然无法建立您的列表,因为您正在抓取的请求/URL不包括在内,但是您在它们周围有一个额外的[]
,而不是基于底部片段的1d列表。如果执行authorsFin.extend(authors)
(其他人也一样)会发生什么情况?这可以确保您的列表是扁平的。如果它不能解决问题,请显示请求和URL以生成可运行代码。不,csv也有同样的问题。单元格a1='Title'和a2=该单元格中的所有标题。其他标题也一样。哇!!就这样!扩展而不是附加!非常感谢。