我是python的新手,这已经是我在这里问的第二个问题。我有以下从API获取的熊猫数据框:
data metadata
1388534400000 {'electricity': 0.0} NaN
1388538000000 {'electricity': 0.0} NaN
1388541600000 {'electricity': 0.0} NaN
1388545200000 {'electricity': 0.0} NaN
1388548800000 {'electricity': 0.0} NaN
这些只是数据框的前几个元素(列“ data”和“ metadata”),最后几行是这些>
1420066800000 {'electricity': 0.0} NaN
params NaN {'lat': '51.564', 'lon': ...
units NaN {'time': 'UTC', 'electricity': 'kW'}
我让python打印了结构类型,它返回了这个:
我想获得“电”之后所有浮点值的总和,但不知道如何。我在Google上搜索过,找不到任何有效的方法。有谁知道如何解决这个问题?谢谢!
这是我请求数据的方式:
def query_pv(lat, lon, date_from, date_to,
tilt, azim=180, tracking=0, system_loss=10,
capacity=1, dataset='merra2', interpolate=False,
local_time=False, raw=False):
s = requests.session()
# get token
token = _load_token()
# send token through header
s.headers = {'Authorization': 'Token ' + token}
url = API_BASE + 'data/pv'
# pre-process inputs
date_from = _date_to_string(date_from)
date_to = _date_to_string(date_to)
args = {
'lat': lat,
'lon': lon,
'date_from': date_from,
'date_to': date_to,
'dataset': dataset,
'capacity': capacity,
'system_loss': system_loss,
'tracking': tracking,
'tilt': tilt,
'azim': azim,
'format': 'json',
# 'metadata': metadata,
'raw': raw
}
r = s.get(url, params=args)
if not r.ok:
raise Exception('Query failed. Check input parameters.')
return pd.read_json(r.text, orient='index')
答案 0 :(得分:0)
您可以通过应用程序访问数据以逐列获取总和:
df=pd.DataFrame({'A': [{'electricity':0.0},{'electricity':1.0},{'electricity':5},{'electricity':4}],'B':['a','b','a','c']})
sumElectricity = df['A'].dropna().apply(lambda x: x['electricity'])).sum()
但是,这种方法意味着每一行要么为空,要么具有使用electricity
键的字典。