在 Python 中操作数据帧

manipulate dataframes in Python

我尝试采用如下结构,但针对多个城市,并列出了每天的城市(如果我确实有访问多个城市的脚本,那么问题将得到解决,并且日期也包括在内城市......我可能会问很多,但我不想为这个特定问题构建一个新包......请让我知道):

我能得到帮助吗?我现在拥有的是:rows/index 基于日期,列基于 city/country ...

希望有基于日期的行和看起来像图片的列。我确实使用 wunderground/weather API。所以下面的脚本不允许我做任何修改。我尝试了所有方法,仍然没有达到我预期的结果,也许

from wunderpython import wunderground

是问题所在。

for city in wg['London, United Kingdom', 'Birmingham, United Kingdom', 'Leeds, United Kingdom', 'Glasgow, United Kingdom', 'Sheffield, United Kingdom', 'Bradford, United Kingdom', 'Liverpool, United Kingdom', 'Edinburgh, United Kingdom', 'Manchester, United Kingdom', 'Paris, France', 'Marseille, France', 'Lyon, France', 'Toulouse, France', 'Nice, France', 'Nantes, France', 'Strasbourg, France', 'Montpellier, France', 'Bordeaux, France', 'Lille, France', 'Grenoble, France', 'Dijon, France']:
    ds[city.name] = []
    for day in city.history['2015.08.10':'2015.08.24']:
       dailysummary = day['dailysummary'][0]        
       if dailysummary['date']['mon']+'.'+dailysummary['date']['mday']+'.'+dailysummary['date']['year'] not in x:
          x.append(dailysummary['date']['mon']+'.'+dailysummary['date']['mday']+'.'+dailysummary['date']['year'])
       ds[city.name].append(float(dailysummary['humidity']))


df = DataFrame(ds, x)

如果我理解正确你的问题,你可以reset your index and then set a new index专栏:

df = df.reset_index().set_index('date')

发布问题的答案以防有人遇到同样的问题。

from wunderpython import wunderground
wg = wunderground.Wunderground('your_key')
from pandas import *
x = []
ds = {
    'meantempi':[],
    'maxtempi':[],
    'mintempi':[],
    'humidity':[],
    'city':[],
}

for  city in wg['London, United Kingdom','Birmingham, United Kingdom','Lyon, France']:

for day in city.history['2015.08.25':'2015.08.31']:
    dailysummary = day['dailysummary'][0]        
    if dailysummary['date']['year']+'.'+dailysummary['date']['mon']+'.'+dailysummary['date']['mday'] not in x:
        x.append(dailysummary['date']['year']+'/'+dailysummary['date']['mon']+'/'+dailysummary['date']['mday'])
        ds['meantempi'].append(float(dailysummary['meantempi']))
        ds['maxtempi'].append(float(dailysummary['maxtempi']))
        ds['mintempi'].append(float(dailysummary['mintempi']))
        ds['humidity'].append(float(dailysummary['humidity']))
        ds['city'].append(city.name)
df = DataFrame(ds, x)