Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改熊猫栏的日期格式(月-日-年-日-月-年)_Python_Pandas_Datetime - Fatal编程技术网

Python 更改熊猫栏的日期格式(月-日-年-日-月-年)

Python 更改熊猫栏的日期格式(月-日-年-日-月-年),python,pandas,datetime,Python,Pandas,Datetime,得到以下问题 我的pandas中有一列包含一些日期和一些空值 例如: 1 - 3-20-2019 2 - 3 - 2-25-2019 等 我想将格式从年月转换为年月,当它为空时,我只想保持它为空 最快的方法是什么 谢谢 不确定这是否是完成任务的最快方法。反正 df = pd.DataFrame({'Date': {0: '3-20-2019', 1:"", 2:"2-25-2019"}}) #your dataframe df['Date'] = pd.to_dat

得到以下问题

我的pandas中有一列包含一些日期和一些空值

例如:

    1 - 3-20-2019
    2 - 
    3 - 2-25-2019 

我想将格式从年月转换为年月,当它为空时,我只想保持它为空

最快的方法是什么


谢谢

不确定这是否是完成任务的最快方法。反正

df = pd.DataFrame({'Date': {0: '3-20-2019', 1:"", 2:"2-25-2019"}}) #your dataframe
df['Date'] = pd.to_datetime(df.Date) #convert to datetime format
df['Date'] = [d.strftime('%d-%m-%Y') if not pd.isnull(d) else '' for d in df['Date']]
输出:

         Date
0  20-03-2019
1            
2  25-02-2019

不确定这是否是完成任务的最快方法。反正

df = pd.DataFrame({'Date': {0: '3-20-2019', 1:"", 2:"2-25-2019"}}) #your dataframe
df['Date'] = pd.to_datetime(df.Date) #convert to datetime format
df['Date'] = [d.strftime('%d-%m-%Y') if not pd.isnull(d) else '' for d in df['Date']]
输出:

         Date
0  20-03-2019
1            
2  25-02-2019

可以使用字符串初始化日期的数据,然后将字符串转换为日期时间。然后,打印可以按所需格式传送对象

我将使用另一种格式(以点作为分隔符),以便在步骤之间进行清晰的转换


首先是示例代码:

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' ] = '' 

对上述问题的评论。
df
的第一个实例在ipython解释器中:

In [56]: df['day']                                                  
Out[56]: 
0    3-20-2019
1         None
2    2-25-2019
Name: day, dtype: object
转换为日期时间后:

In [58]: df['day']                                               
Out[58]: 
0   2019-03-20
1          NaT
2   2019-02-25
Name: day, dtype: datetime64[ns]
所以我们有

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
NaT会产生问题。因此,我们用空字符串替换它的所有匹配项

In [73]: df[ df=='NaT' ] = ''

In [74]: df
Out[74]: 
          day
0  20.03.2019
1            
2  25.02.2019

可以使用字符串初始化日期的数据,然后将字符串转换为日期时间。然后,打印可以按所需格式传送对象

我将使用另一种格式(以点作为分隔符),以便在步骤之间进行清晰的转换


首先是示例代码:

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' ] = '' 

对上述问题的评论。
df
的第一个实例在ipython解释器中:

In [56]: df['day']                                                  
Out[56]: 
0    3-20-2019
1         None
2    2-25-2019
Name: day, dtype: object
转换为日期时间后:

In [58]: df['day']                                               
Out[58]: 
0   2019-03-20
1          NaT
2   2019-02-25
Name: day, dtype: datetime64[ns]
所以我们有

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
NaT会产生问题。因此,我们用空字符串替换它的所有匹配项

In [73]: df[ df=='NaT' ] = ''

In [74]: df
Out[74]: 
          day
0  20.03.2019
1            
2  25.02.2019

谢谢工作正常,但有一些更改:df['date']=pd.to_datetime(df['date'],errors='concurve')df['date']=df['datum'].dt.strftime('%d-%m-%Y')df.replace('NaT','',inplace=True)谢谢。已工作,但有一些更改:df['date']=pd.to_datetime(df['date'],errors='concurve')df['date']=df['datum'].dt.strftime('%d-%m-%Y')df.replace('NaT','',inplace=True)