亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

'DataFrame' 對象沒有屬性 'map'

'DataFrame' 對象沒有屬性 'map'

慕后森 2022-12-14 10:55:41
我在下面有以下命令:datamax['Date'] = pd.to_datetime(datamax['Date'])datamax2015['Date'] = pd.to_datetime(datamax2015['Date'])datamax["day_of_year"] = datamax["Date"].dt.dayofyeardatamax2015["day_of_year"] = datamax["Date"].dt.dayofyeardatamaxappend = datamax2015.join(datamax,on="day_of_year",rsuffix="_new")upper = datamaxappend.loc[datamaxappend["Data_Value_new"]<datamaxappend["Data_Value"]]upper = upper.rename(columns={"Date_new":"Date","Data_Value_new":"Data_Value"})lower = lower.rename(columns={"Date_new":"Date","Data_Value_new":"Data_Value"})upper['Date'] = upper['Date'].map(lambda x: x.strftime("%d/%m/%Y, %H:%M:%S"))lower['Date'] = lower['Date'].map(lambda x: x.strftime("%d/%m/%Y, %H:%M:%S"))  但是,我不斷收到錯誤消息:'DataFrame' 對象沒有屬性 'map'我對這是為什么感到困惑。有人可以幫我嗎?下方的數據框如下所示:上:     Date           ID Element  Data_Value  day_of_year       Date  \3  2015-01-04  USW00094889    TMAX          44            4 2005-01-05   4  2015-01-05  USW00094889    TMAX          28            5 2005-01-06   5  2015-01-06  USW00094889    TMAX          33            6 2005-01-07   14 2015-01-15  USW00094889    TMAX          -5           15 2005-01-16   15 2015-01-16  USW00094889    TMAX           6           16 2005-01-17            ID_new Element_new  Data_Value  day_of_year_new  3   USW00094889        TMAX          33                5  4   USW00094889        TMAX           0                6  5   USW00094889        TMAX           6                7  14  USW00094889        TMAX         -33               16  15  USW00094889        TMAX         -50               17  
查看完整描述

2 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

upperlower數據框有兩列稱為Date. 您正在使用upper['Date'].

解決方案:將至少一列重命名為不同于日期的某項,然后將您的函數分別應用于每一列。


查看完整回答
反對 回復 2022-12-14
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

  1. 返回 2005 年至 2014 年期間一年中各天的創紀錄高溫和低溫記錄折線圖的 Python 代碼。每天創紀錄的最高氣溫和最低氣溫之間的區域應該用陰影標出。

  2. 然后,為 2015 年打破十年記錄(2005-2014 年)歷史高點或歷史低點的任何點(高點和低點)疊加 2015 年數據的散點圖。

  3. 刪除閏年日期(即 2 月 29 日)。

from datetime import datetime

import pandas as pd

import matplotlib.pyplot as plt


pd.set_option("display.max_rows",None,"display.max_columns",None)

data = pd.read_csv('data/C2A2_data/BinnedCsvs_d400/fb441e62df2d58994928907a91895ec62c2c42e6cd075c2700843b89.csv') 

newdata = data[(data['Date'] >= '2005-01-01') & (data['Date'] <= '2014-12-12')]

datamax = newdata[newdata['Element']=='TMAX']

datamin = newdata[newdata['Element']=='TMIN']

datamax['Date'] = pd.to_datetime(datamax['Date'])

datamin['Date'] = pd.to_datetime(datamin['Date'])

datamax["day_of_year"] = datamax["Date"].dt.dayofyear

datamax = datamax.groupby('day_of_year').max()

datamin["day_of_year"] = datamin["Date"].dt.dayofyear

datamin = datamin.groupby('day_of_year').min()

datamax = datamax.reset_index()

datamin = datamin.reset_index()

datamin['Date'] = datamin['Date'].dt.strftime('%Y-%m-%d')

datamax['Date'] = datamax['Date'].dt.strftime('%Y-%m-%d')

datamax = datamax[~datamax['Date'].str.contains("02-29")]

datamin = datamin[~datamin['Date'].str.contains("02-29")]


breakoutdata = data[(data['Date']  > '2014-12-31')]

datamax2015 = breakoutdata[breakoutdata['Element']=='TMAX']

datamin2015 = breakoutdata[breakoutdata['Element']=='TMIN']

datamax2015['Date'] = pd.to_datetime(datamax2015['Date'])

datamin2015['Date'] = pd.to_datetime(datamin2015['Date'])

datamax2015["day_of_year"] = datamax2015["Date"].dt.dayofyear

datamax2015 = datamax2015.groupby('day_of_year').max()

datamin2015["day_of_year"] = datamin2015["Date"].dt.dayofyear

datamin2015 = datamin2015.groupby('day_of_year').min()

datamax2015 = datamax2015.reset_index()

datamin2015 = datamin2015.reset_index()

datamin2015['Date'] = datamin2015['Date'].dt.strftime('%Y-%m-%d')

datamax2015['Date'] = datamax2015['Date'].dt.strftime('%Y-%m-%d')

datamax2015 = datamax2015[~datamax2015['Date'].str.contains("02-29")]

datamin2015 = datamin2015[~datamin2015['Date'].str.contains("02-29")]


dataminappend = datamin2015.join(datamin,on="day_of_year",rsuffix="_new")

lower = dataminappend.loc[dataminappend["Data_Value_new"]>dataminappend["Data_Value"]]

datamaxappend = datamax2015.join(datamax,on="day_of_year",rsuffix="_new")

upper = datamaxappend.loc[datamaxappend["Data_Value_new"]<datamaxappend["Data_Value"]]


upper['Date'] = pd.to_datetime(upper['Date']) 

lower['Date'] = pd.to_datetime(lower['Date']) 

datamax['Date'] = pd.to_datetime(datamax['Date']) 

datamin['Date'] = pd.to_datetime(datamin['Date']) 


ax = plt.gca()

plt.plot(datamax['day_of_year'],datamax['Data_Value'],color='red')

plt.plot(datamin['day_of_year'],datamin['Data_Value'], color='blue')

plt.scatter(upper['day_of_year'],upper['Data_Value'],color='purple')

plt.scatter(lower['day_of_year'],lower['Data_Value'], color='cyan')


plt.ylabel("Temperature (degrees C)",color='navy')

plt.xlabel("Day of the year",color='navy',labelpad=15)

plt.title('Record high and low temperatures by day between 2005-2014)', alpha=1.0,color='brown',y=1.08)

ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.35),fancybox=False,labels=['Record high','Record low'])

plt.xticks(rotation=30)

plt.fill_between(range(len(datamax['Date'])), datamax['Data_Value'], datamin['Data_Value'],color='yellow',alpha=0.8)

plt.show()

  1. 我已使用 Datamin['Date'] = datamin['Date'].dt.strftime('%Y-%m-%d') 將“日期”列轉換為字符串。

  2. 然后我使用 upper['Date'] = pd.to_datetime(upper['Date']) 將其轉換回 'datetime' 格式

  3. 然后我使用“年份日期”作為 x 值。

在此處輸入圖像描述


查看完整回答
反對 回復 2022-12-14
  • 2 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號