我想将这些数据帧写入csv
文件,但是我只写最后一行。我的代码的目标是调用一个API,并获得给定lat/lng“昨天”的最高温度。在
我目前的输出是:
我希望我的输出是:
代码:
import pandas as pd
import requests
import csv
import json
from datetime import datetime, timedelta
from pandas import DataFrame
#read csv
output_high_csv = r"C:\wab\outputempbeets1.csv"
se_ = requests.Session()
df = pd.read_csv(csvdata)
df = df [['lat', 'lon', 'field id']]
#convert Pandas series to string
dfText = df.astype(basestring)
#get lat/lng from dataframe
dfLat = dfText['lat']
dfLon = dfText['lon']
dfFid = dfText['field id']
#get values from series
latval = list(dfLat.values)
lonval = list(dfLon.values)
idVal = list(dfFid.values)
dayVal = datetime.strftime(datetime.now() - timedelta(1), '%Y-%m-%d')
#Zip Field ID, Lat, Lng
for latrow, lonrow, idVal in zip(latval, lonval, idVal):
#send lat/lngs to DTN
url = 'https://insight.api.wdtinc.com/daily-high-temperature/' + str(latrow )+'/' + str(lonrow) +'?start='+ dayVal +'T00:00:00Z&end=' +dayVal+'T01:00:00Z'+ '&unit=fahrenheit'
r = se_.get(url, auth=('USERNAME', 'PASSWORD'), timeout= 10)
# print(r.url)
hiTemp = (json.loads(r.content)['series'][0]['value'])
strTemp = str(hiTemp)
tempDF = {'field id': [idVal],
'high temperature': [strTemp]
}
df = DataFrame(tempDF,columns= ['field id', 'high temperature'])
dfList = [df]
dfs = [df.set_index('field id') for df in dfList]
i = pd.concat(dfs, axis=1)
print i
i.to_csv(output_high_csv, encoding='utf-8', index=True)`
当我打印i
时,我的输出是:
编辑:当我使用mode= 'a'
时
以下是我的输出:
你的代码很复杂。我认为这是你所尝试的简化版本。它可能有错误,但如果这不能回答您的问题,请尝试使用它来简化问题中的代码。在
尝试使用附加模式:
相关问题 更多 >
编程相关推荐