我是新来的网络刮擦,并试图熟悉气象标记库.我有以下数据集:

df = pd.DataFrame({
    'postal code': [11, 12, 13],
    'latitude': [40.7128, 34.0522, 51.5074],
    'longitude': [-74.0060, -118.2437, -0.1278]
})

我想要做的是检索这些位置从01.01.2022到31.12.2022期间的每日最低和最高温度.我正在try 以下代码:

# Set time period
start = datetime(2022, 1, 1)
end = datetime(2022, 12, 31) 

# Create points for locations
df['point'] = df.apply(lambda x: Point(x['latitude'], x['longitude'], 70), 
                        axis=1)

# Get daily data for 2022
data = df.apply(lambda x: Daily(x['point'], start, end), 
                        axis=1)
data = data.fetch()

但是,我收到以下错误:AttributeError:‘Series’对象没有‘Fetch’属性

推荐答案

当您使用df.apply()时,您将对数据帧的每一行应用Daily()函数.这是在创建一系列Daily个对象.然后,您try 对该系列调用fetch(),但这不起作用,因为您需要对单个Daily对象(而不是一系列对象)调用它.

你可以这样试一试:

data = []

for index, row in df.iterrows():
    point = Point(row['latitude'], row['longitude'])
    
    daily_data = Daily(point, start, end)
    daily_data = daily_data.fetch()

    data.append(daily_data)

# Concatenate the data from all locations into a single dataframe
result = pd.concat(data)

print(result)

如果您还想返回邮政编码列,则可以在将数据追加到列表之前将该行添加到for循环中:

daily_data['postal code'] = row['postal code']

Python相关问答推荐

inspect_asm不给出输出

如何使用bs 4从元素中提取文本

由于瓶颈,Python代码执行太慢-寻求性能优化

我必须将Sigmoid函数与r2值的两种类型的数据集(每种6个数据集)进行匹配,然后绘制匹配函数的求导.我会犯错

Pandas 填充条件是另一列

运行回文查找器代码时发生错误:[类型错误:builtin_index_or_system对象不可订阅]

根据条件将新值添加到下面的行或下面新创建的行中

如何使用Python将工作表从一个Excel工作簿复制粘贴到另一个工作簿?

Pandas - groupby字符串字段并按时间范围 Select

为什么sys.exit()不能与subproccess.run()或subprocess.call()一起使用

使用groupby Pandas的一些操作

如何在python polars中停止otherate(),当使用when()表达式时?

梯度下降:简化要素集的运行时间比原始要素集长

如何根据一列的值有条件地 Select 前N组?

基于形状而非距离的两个numpy数组相似性

如何在GEKKO中使用复共轭物

有没有办法让Re.Sub报告它所做的每一次替换?

按条件添加小计列

如果不使用. to_list()[0],我如何从一个pandas DataFrame中获取一个值?

如何提高Pandas DataFrame中随机列 Select 和分配的效率?