最终输出未反映在 csv 中,需要修复数据框中的输出
final output was not reflecting in csv, Need to fix output in data frame
问题 - 我需要从给定的 link 中获取数据并保存为 csv 格式。所需数据是价格、前收盘价、代码。
我是初学者,不会数据框,能不能帮我参考一下代码。
任何其他替代方法也可以。
#input data was given below
tikcer = ['msft','amd','aapl']
期望输出格式-
A
B
C
0
261.5
266.82
MSFT
1
94.24
102.47
AMD
2
145.54
149.24
AAPL
我得到这个输出 -
A
B
C
0
145.54
149.24
AAPL
我的测试代码
import json
import requests
#import pyuser_agent
import pandas as pd
#ua = pyuser_agent.UA()
#headers = {'User-Agent': ua.random }
headers = {'User-Agent': 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)' }
tikcer = ['msft','amd','aapl']
for i in tikcer:
print(i)
url = f"https://query1.finance.yahoo.com/v8/finance/chart/{i}"
response = requests.get(url, headers=headers)
print("API is working. status code :" + str(response.status_code))
datas = json.loads(response.text)
for value in datas['chart']['result']:
print(value)
a = value['meta']['previousClose']
b = value['meta']['regularMarketPrice']
c = value['meta']['symbol']
print(a,b,c)
data = {'A': a, 'B': b, 'C': c}
df = pd.DataFrame.from_dict([data])
df.to_csv('data3.csv')
#df = pd.DataFrame.from_dict({'A': [a], 'B': [b], 'C': [c]})
#df.to_csv('data1.csv')
开始时,创建了一个包含 NaN 值(空)的数据框。
在循环中,每个单元格都被填充,其中 df.loc[i, 'A'],i 是行的索引(左侧),'A' 是列名。
此外,使用范围更改循环以通过 i.
访问索引
import json
import requests
#import pyuser_agent
import pandas as pd
#ua = pyuser_agent.UA()
#headers = {'User-Agent': ua.random }
headers = {'User-Agent': 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)' }
tikcer = ['msft','amd','aapl']
df = pd.DataFrame(index=[0, 1, 2], columns=['A', 'B', 'C'])
for i in range(0,len(tikcer)):
print(tikcer[i])
url = f"https://query1.finance.yahoo.com/v8/finance/chart/{tikcer[i]}"
response = requests.get(url, headers=headers)
print("API is working. status code :" + str(response.status_code))
datas = json.loads(response.text)
df.loc[i, 'A'] = datas['chart']['result'][0]['meta']['previousClose']
df.loc[i, 'B'] = datas['chart']['result'][0]['meta']['regularMarketPrice']
df.loc[i, 'C'] = datas['chart']['result'][0]['meta']['symbol']
print(df)
输出
A B C
0 266.2 255.34 MSFT
1 102.47 96.89 AMD
2 149.24 141.809 AAPL
问题 - 我需要从给定的 link 中获取数据并保存为 csv 格式。所需数据是价格、前收盘价、代码。
我是初学者,不会数据框,能不能帮我参考一下代码。
任何其他替代方法也可以。
#input data was given below
tikcer = ['msft','amd','aapl']
期望输出格式-
A | B | C | |
---|---|---|---|
0 | 261.5 | 266.82 | MSFT |
1 | 94.24 | 102.47 | AMD |
2 | 145.54 | 149.24 | AAPL |
我得到这个输出 -
A | B | C | |
---|---|---|---|
0 | 145.54 | 149.24 | AAPL |
我的测试代码
import json
import requests
#import pyuser_agent
import pandas as pd
#ua = pyuser_agent.UA()
#headers = {'User-Agent': ua.random }
headers = {'User-Agent': 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)' }
tikcer = ['msft','amd','aapl']
for i in tikcer:
print(i)
url = f"https://query1.finance.yahoo.com/v8/finance/chart/{i}"
response = requests.get(url, headers=headers)
print("API is working. status code :" + str(response.status_code))
datas = json.loads(response.text)
for value in datas['chart']['result']:
print(value)
a = value['meta']['previousClose']
b = value['meta']['regularMarketPrice']
c = value['meta']['symbol']
print(a,b,c)
data = {'A': a, 'B': b, 'C': c}
df = pd.DataFrame.from_dict([data])
df.to_csv('data3.csv')
#df = pd.DataFrame.from_dict({'A': [a], 'B': [b], 'C': [c]})
#df.to_csv('data1.csv')
开始时,创建了一个包含 NaN 值(空)的数据框。 在循环中,每个单元格都被填充,其中 df.loc[i, 'A'],i 是行的索引(左侧),'A' 是列名。 此外,使用范围更改循环以通过 i.
访问索引import json
import requests
#import pyuser_agent
import pandas as pd
#ua = pyuser_agent.UA()
#headers = {'User-Agent': ua.random }
headers = {'User-Agent': 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)' }
tikcer = ['msft','amd','aapl']
df = pd.DataFrame(index=[0, 1, 2], columns=['A', 'B', 'C'])
for i in range(0,len(tikcer)):
print(tikcer[i])
url = f"https://query1.finance.yahoo.com/v8/finance/chart/{tikcer[i]}"
response = requests.get(url, headers=headers)
print("API is working. status code :" + str(response.status_code))
datas = json.loads(response.text)
df.loc[i, 'A'] = datas['chart']['result'][0]['meta']['previousClose']
df.loc[i, 'B'] = datas['chart']['result'][0]['meta']['regularMarketPrice']
df.loc[i, 'C'] = datas['chart']['result'][0]['meta']['symbol']
print(df)
输出
A B C
0 266.2 255.34 MSFT
1 102.47 96.89 AMD
2 149.24 141.809 AAPL