2017-07-30 10 views
0

どこでも検索していますが、この問題を解決できないようです。Python:forループとパンダで新しいCSVファイルに保存

「名前」と「URL」の2つの見出しが含まれたCSVファイルがあります。私は、以下のとおり、DF1という変数でこれを保存した:

`

import pandas as pd 

df1 = pd.read_csv('yahoo finance.csv') 
print(df1) 

     Name          URL 
0 Gainers https://au.finance.yahoo.com/gainers?e=ax 
1 Losers  https://au.finance.yahoo.com/losers 
2 Active https://au.finance.yahoo.com/most-active 

`

を私は何をしようとしているが、上記URLのそれぞれに入るパースですテーブルを開き、新しいCSVファイルにデータを保存します。

`

for u in df1.URL: 
    u2 = pd.read_html(u) 
    for n in u2: 
     row2 = pd.DataFrame(num) 
     row2.to_csv(name+'.csv', index=False) 

`

私は解決できないことを、ここで大きな一歩をしないのです、私は "から名前を持つ新しいCSVに各URLからテーブルを保存したいです対応するURLの「名前」列。

誰かがこの簡単な部分を解決するのに役立つことができますか?現在のところ、このコードはすべて、最後のURLのデータを「アクティブ」という名前のCSVに保存します。最初の2つのURLは保存されません。

ありがとうございます!

+0

'num'と' 'name'のは不正確な値に設定されることがありますので、' ROW2 = pd.DataFrame(NUM)と 'row2.to_csv(名+ 'CSV'、インデックス= False) 'が期待通りに機能していません。値を印刷して、それらが何であるかを確認してください – Joe

答えて

-1

データフレームを行ごとに反復処理する必要があることを意味しますか? URLの値がデータの取得に使用されます。データの保存にはNameが使用されます。はい、おそらくあなたはit

for row in df.iterrows(): 
    name = row[1]['Name'] 
    url = row[1]['URL'] 
0

はありがとうござい必要がある場合は、彼らがする必要がありますように、これは今、問題を解決する助けている、CSVのは、保存されています。更新されたコードは次のとおりです。

for row in df1.iterrows(): 
    name = row[1]['Name'] 
    url = row[1]['URL'] 
    url2 = str(url) 
    url3 = pd.read_html(url2) 
    for num in url3: 
     row2 = pd.DataFrame(num) 
     row2.to_csv(name+'.csv', index=False) 
関連する問題