Python:for循环并保存到带有pandas的新CSV文件

时间:2017-07-30 07:35:27

标签: python python-3.x

到处搜寻但似乎无法解决这个问题。

我有一个包含两个标题的csv文件,"名称"和" URL"。我已将其保存在名为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

`

我尝试做的是进入上述每个网址,解析其中的表格,并将数据保存在新的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中,其名称来自" Name"相应网址的列。

有人可以帮我解决这个简单的部分吗?目前,所有这些代码都将最后一个网址的数据保存到名为“#34;活跃”的csv中,它根本没有保存前两个网址。

提前谢谢!

2 个答案:

答案 0 :(得分:0)

你的意思是你需要逐行迭代一个数据帧吗? URL值是否用于获取数据。 Name是否用于保存数据。如果是,您可能需要it

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

答案 1 :(得分: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)