HRR*_*337 6 python datetime pandas
遇到以下问题。
我的熊猫中有一个列,其中包含一些日期和一些空值。
例子:
1 - 3-20-2019
2 -
3 - 2-25-2019
Run Code Online (Sandbox Code Playgroud)
ETC
我想将格式从月-日-年转换为日-月-年,当它为空时,我只想将其保留为空。
最快的方法是什么?
谢谢!
小智 7
可以使用字符串初始化日期数据,然后将字符串转换为日期时间。然后打印可以以所需的格式交付对象。
我将使用其他格式(以点作为分隔符),以便步骤之间的转换清晰可见。
首先是示例代码:
import pandas as pd
data = {'day': ['3-20-2019', None, '2-25-2019'] }
df = pd.DataFrame( data )
df['day'] = pd.to_datetime(df['day'])
df['day'] = df['day'].dt.strftime('%d.%m.%Y')
df[ df == 'NaT' ] = ''
Run Code Online (Sandbox Code Playgroud)
对上述内容的评论。第一个实例df是在 ipython 解释器中:
In [56]: df['day']
Out[56]:
0 3-20-2019
1 None
2 2-25-2019
Name: day, dtype: object
Run Code Online (Sandbox Code Playgroud)
转换为日期时间后:
In [58]: df['day']
Out[58]:
0 2019-03-20
1 NaT
2 2019-02-25
Name: day, dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)
这样我们就有了
In [59]: df['day'].dt.strftime('%d.%m.%Y')
Out[59]:
0 20.03.2019
1 NaT
2 25.02.2019
Name: day, dtype: object
Run Code Online (Sandbox Code Playgroud)
这NaT会带来问题。因此我们用空字符串替换所有出现的地方。
In [73]: df[ df=='NaT' ] = ''
In [74]: df
Out[74]:
day
0 20.03.2019
1
2 25.02.2019
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20002 次 |
| 最近记录: |