![](/img/trans.png)
[英]how to convert Date and time column of dataframe to datetime format of pandas?
[英]Convert String Column directly to Date format (not Datetime) in Pandas DataFrame
我有以下 Pandas DataFrame:
df = pd.DataFrame({'a': ['2020-01-02', '2020-01-02']})
顯然,“a”列是字符串。 我想將其轉換為“日期”類型; 這就是我所做的:
df['a'] = df['a'].apply(pd.to_datetime).dt.date
它有效,但實際上我的 DataFrame 有 500,000 + 行。 似乎效率很低。 有什么方法可以直接更有效地將字符串列轉換為日期列?
pandas.DataFrame.apply
本質上是一個原生的 python for
loop。
pandas.to_datetime
是向量化的 function,這意味着它旨在通過在 Z0D61F8370CAD1D412F70B84D143E12 中執行內循環來對序列/列表/數組/序列進行操作
如果我們從更大的 dataframe 開始:
import pandas
df = pandas.DataFrame({'a': ['2020-01-02', '2020-01-02'] * 5000})
然后做(在一個jupyter筆記本中)
%%timeit
df['a'].apply(pandas.to_datetime).dt.date
我們得到一個非常緩慢的結果:
1.03 s ± 48.9 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
但是,如果我們稍微重新排列以通過整個列:
%%timeit
pandas.to_datetime(df['a']).dt.date
我們得到一個更快的結果:
6.07 ms ± 232 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
使用df['a'] = pd.to_datetime(df['a'], format='%Y-%m-%d')
如果您知道它們都遵循相同的格式,請指定format
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.