第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

將對象轉(zhuǎn)換為沒有時(shí)間的日期時(shí)間

將對象轉(zhuǎn)換為沒有時(shí)間的日期時(shí)間

翻過高山走不出你 2023-03-30 17:27:01
我有如下所示的數(shù)據(jù)框:         Date      Region     Data   0   200201        A        8.8   1   200201        B        14.3                    ...     1545   202005        C        7.31546   202005        D        131我想在沒有時(shí)間的情況下將 Date 列(數(shù)據(jù)類型:對象)轉(zhuǎn)換為 DateTime 索引。yyyymm 或 yyyymmdd 或 yyyy-mm-dd 所有這些都無關(guān)緊要,只要我可以刪除時(shí)間部分。我搜索了 stackoverflow 并嘗試了這些代碼# (1) df["Date"] = pd.to_datetime(df["Date"], format = "%Y%m", errors = "coerce", uts = False)# (2)df["Date"] = pd.to_datetime(df["Date"], format = "%Y%m")df["Date"] = df["Date"].dt.normalize()# (3)df["Date"] = pd.to_datetime(df["Date"], format = "%Y%m")df["Date"] = df["Date"].dt.date對于 (1) 和 (2),我得到 ["Date"],時(shí)間為 yyyy-mm-dd 00:00:00。對于 (3),我確實(shí)得到 ["Date"] 作為 yyyymm 但 dtype 是對象。我不能使用日期范圍,因?yàn)橥蝗掌跁貜?fù)一段時(shí)間。有什么方法可以在 python 中將 yyyymm[object] 轉(zhuǎn)換為 yyyymmdd[datetime] 嗎?提前致謝。
查看完整描述

2 回答

?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個贊

這可能是關(guān)于您的 DataFrame 在編輯器中的顯示方式的顯示配置問題。以正確格式獲取數(shù)據(jù)的最簡單方法是:


df['Date'] = pd.to_datetime(df['Date'], format = '%Y%m')

以下是repl.it使用您的 DataFrame 和此代碼的結(jié)果。日期格式正確,沒有時(shí)間部分,并且具有正確的 dtype。


        Date Region  Data

0 2002-01-01      A   8.8


<class 'pandas.core.frame.DataFrame'>

RangeIndex: 1 entries, 0 to 0

Data columns (total 3 columns):

 #   Column  Non-Null Count  Dtype         

---  ------  --------------  -----         

 0   Date    1 non-null      datetime64[ns]

 1   Region  1 non-null      object        

 2   Data    1 non-null      float64       

dtypes: datetime64[ns](1), float64(1), object(1)

memory usage: 152.0+ bytes

您還可以嘗試一種更復(fù)雜的方法,從日期時(shí)間到日期字符串再回到日期時(shí)間。


df['Date'] = pd.to_datetime(df['Date'], format = '%Y%m').dt.date

df['Date'] = df['Date'].astype('datetime64[ns]')

最終顯示和 dtype 是相同的。


        Date Region  Data

0 2002-01-01      A   8.8


<class 'pandas.core.frame.DataFrame'>

RangeIndex: 1 entries, 0 to 0

Data columns (total 3 columns):

 #   Column  Non-Null Count  Dtype         

---  ------  --------------  -----         

 0   Date    1 non-null      datetime64[ns]

 1   Region  1 non-null      object        

 2   Data    1 non-null      float64       

dtypes: datetime64[ns](1), float64(1), object(1)

memory usage: 152.0+ bytes


查看完整回答
反對 回復(fù) 2023-03-30
?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個贊

問題中的日期列的格式為 YYYYMM(但沒有天數(shù))。該函數(shù)pd.to_datetime()隱式地將日設(shè)置為 1。


該函數(shù)pd.Period()將 YYYYMM 格式的日期轉(zhuǎn)換為 pandas 句點(diǎn)。請注意,df['Date'] 可以是字符串或 6 位整數(shù)。


df['Date'].apply(lambda x: pd.Period(x, freq='M'))


0    2002-01

1    2002-01

2    2020-05

3    2020-05

Name: Date, dtype: period[M]


查看完整回答
反對 回復(fù) 2023-03-30
  • 2 回答
  • 0 關(guān)注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號