ฉันมี dataframe datetime.datetime
ขนาดใหญ่ที่มีหลายคอลัมน์หลายแห่งซึ่งเป็นประเภท ปัญหาคือหลายคนมีประเภทผสมรวมทั้งdatetime.datetime
ค่าและค่าเช่นNone
(และค่าที่ไม่ถูกต้องอื่น ๆ ):
0 2017-07-06 00:00:00
1 2018-02-27 21:30:05
2 2017-04-12 00:00:00
3 2017-05-21 22:05:00
4 2018-01-22 00:00:00
...
352867 2019-10-04 00:00:00
352868 None
352869 some_string
Name: colx, Length: 352872, dtype: object
จึงส่งผลให้object
คอลัมน์ประเภท df.colx.fillna(pd.NaT)
นี้สามารถแก้ไขได้ด้วย ปัญหาคือว่า dataframe ใหญ่เกินกว่าจะค้นหาแต่ละคอลัมน์ได้
อีกวิธีคือการใช้pd.to_datetime(col, errors='coerce')
แต่วิธีนี้จะส่งไปยังdatetime
คอลัมน์จำนวนมากที่มีค่าตัวเลข
ฉันสามารถทำได้df.fillna(float('nan'), inplace=True)
แม้ว่าคอลัมน์ที่มีวันที่ยังคงเป็นobject
ประเภทและจะยังคงมีปัญหาเดียวกัน
สิ่งที่วิธีที่ฉันสามารถปฏิบัติตามเพื่อโยน datetime คอลัมน์เหล่านั้นมีค่าจริงๆมีdatetime
ค่า แต่ยังอาจมีNone
และอาจบางค่าไม่ถูกต้อง (กล่าวขวัญตั้งแต่อื่นpd.to_datetime
ในtry
/ except
ข้อจะทำ)? บางอย่างเช่นเวอร์ชันที่ยืดหยุ่นของpd.to_datetime(col)
None
ในคอลัมน์ของคุณที่เกิดขึ้นจริงNone
แทนหรือสตริงของมันได้หรือไม่
None
ไม่ใช่สตริง อาจเป็นไปได้ว่าอาจมีค่าผิด ๆ ด้วย ... @erfan
datetime
และvalues
อยู่ด้วยได้ไหม
datetime.datetime
หรือpandas._libs.tslibs.timestamps.Timestamp
ไม่ หากคำแนะนำเดิมของฉันจะเปลี่ยนสิ่งที่สร้างวันที่และเวลาเป็นประเภทที่pandas
จัดการได้ดีขึ้นเล็กน้อย