我正在尝试抓取一个具有三个表的网站,并将其转换为我可以用于分析的df或csv。这是我所拥有的代码以及我在几个步骤中遇到的问题。 (警告:python的新手)
import pandas as pd
dfs = pd.read_html('https://www.happyhourspanish.com/learning-efficiently-start-with-the-250-most-common-spanish-words/',header=0)
for df in dfs:
print(df) #loops all 3 tables
此代码将包含250个单词的所有3个表下载到三列-排名,西班牙语,英语。当我尝试保存所有3个表时,错误提示我无法将列表对象保存到csv中。
dfs.to_csv("Spanish_Key2.csv", index=False)
AttributeError: 'list' object has no attribute 'to_csv'
当我仅保存一个df时,它仅将3个表中的第三个保存到了csv中。
df.to_csv("Spanish_Key.csv", index=False)
当我尝试简单地使用'dfs'时,它以列表格式显示了三个漂亮的表。这里的问题-我如何从列表中将此表格格式转换为包含所有3个表格的数据框?
dfs
当我尝试'dfs [0]'时,它只会将第一个表放入可行的数据帧中。我如何使其他两个变成这种格式?
dfs[0]
当我尝试以下代码时,所有3个表现在都在一个单元格中,因此数据帧只有3个单元格。
import pandas as pd
spanish = pd.DataFrame(dfs)
spanish
任何有关如何将所有三个表合并为一个数据帧或将所有3个表合并为csv并在单独的单元格中包含所有250个单词的任何建议,将不胜感激。
如果解决方案是操纵excel,那么关于如何将所有单词分成不同单元格的任何建议?谢谢!
答案 0 :(得分:1)
You want pd.concat(dfs)
, which concatenates the three dataframes together row-wise.