背景:顯然谷歌對一個非常基本的問題沒有直接的答案,所以這里......
我有一個df帶有Open Date[Dtype = object] 列的熊貓,它(預覽時df)是格式化的yyyy-mm-dd,這是我想要的格式,太棒了!但是,不是很好,當我寫入dfa時.csv,它會將格式默認設定為m/dd/yyyy.
問題:我已經嘗試了幾乎所有的.csvto 輸出yyyy-dd-mm都無濟于事。
我試過的:
我嘗試在撰寫時指定日期格式.csv
df.to_csv(filename, date_format="%Y%d%d")
在寫入之前,我嘗試更改相關列的格式.csv
df['Open Date'] = pd.to_datetime(df['Open Date'])
我也嘗試將列轉換為字串,以嘗試強制正確輸出
df['Open Date'] = df['timestamp'].apply(lambda v: str(v))
盡管有這些嘗試,我仍然得到m/dd/yyyy輸出。
幫助:我在哪里尷尬地出錯了?
uj5u.com熱心網友回復:
您的問題包含各種破壞性拼寫錯誤,這似乎暗示了一般可能導致問題的原因。
你說的有幾個問題。考慮:
from pandas import DataFrame
from datetime import datetime
# just some example data, including some datetime and string data
data = [
{'Open date': datetime(2022, 3, 22, 0, 0), 'value': '1'},
{'Open date': datetime(2022, 3, 22, 0, 1), 'value': '2'},
{'Open date': datetime(2022, 3, 22, 0, 2), 'value': '3'}
]
df = DataFrame(data)
# note how the 'Open date' columns is actually a `datetime64[ns]`
# the 'value' string however is what you're saying you're getting, `object`
print(df['Open date'].dtype, df['value'].dtype)
# saving with a silly format, to show it works:
df.to_csv('test.csv', date_format='%Y.%m.%d')
結果檔案:
,Open date,value
0,2022.03.22,1
1,2022.03.22,2
2,2022.03.22,3
我選擇了一種愚蠢的格式,因為我的默認格式實際上是%Y-%m-%d .
最可能的問題是您的“日期”列實際上是一個字串列,但您用于“預覽”資料的工具將這些字串解釋為日期并實際以其他格式顯示它們。
但是,由于您提供的資訊有限,這是猜測。如果您提供一些演示該問題的示例資料,那么肯定會更容易說。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/446269.html
