0
これは前に尋ねられているか、これには本当に簡単な答えがあると確信していますが、これをトラブルシューティングして正確な問題を発見しています。データフレームにリストを追加するときに空のデータフレーム
私は基本的にテーブル(実際にはHTMLから作成されたテキストドキュメントからデータを取っている)を掻き集める次のコードを持っています。私は本質的にテーブルの正確なレプリカを作成しようとしています。 inner forループは、最初の行からリストを作成し、それをpandasデータフレームに追加してから2番目の行に移動し、リストの値を新しい行の値に置き換えて繰り返します。
from bs4 import BeautifulSoup # imports BeautifulSoup
import pandas # imports pandas
#df=pandas.Dataframe("listname")
#Imports the text file and saves it as a variable
def read_file():
file = open('Detroit.txt')
data = file.read()
file.close()
return data
#Converts the text file into something the
soup = BeautifulSoup(read_file(),'lxml')
tables = soup.find_all(class_="overthrow table_container") #Creates a resutset that will show all of the tables with this class name
find_table = tables[2].tbody #creates a tag element from the desired table and highlights the tbody section
rows = find_table.find_all("tr") #creates another resultset signle out the elements with a tr tag.
list_of_rows = []
df = pandas.DataFrame()
for j in range(len(rows)):
row_finder = rows[j]
tag_row = row_finder.find_all("td")
for i in range(len(tag_row)):
list_of_rows.insert(i,tag_row[i].get_text())
df.append(list_of_rows,ignore_index=True)
print(df)
問題は、私がデータフレームを印刷するに行くとき、私はこの結果を得る
Empty DataFrame
Columns: []
Index: []
であり、私は理由を理解することはできません。
'df.append(list_of_rows、ignore_index = True)'が実際に実行され、 'list_of_rows'に興味深いコンテンツがあると確信していますか? 'print'か' pdb.set_trace() 'を使います。 –
私はprint(df)をprint(list_of_rows)に切り替えて、基本的にテーブル全体を逆順で表示しました。新しい値が置き換えられるのではなく、最初に置かれていることとおそらく関係しています。だから、これは私が思うように動作していないようです。 – jon