【问题标题】:Format dates output from excel using panda使用熊猫格式化从excel输出的日期
【发布时间】:2020-05-17 13:36:47
【问题描述】:

我正在尝试使用 pandas 打印从 excel 文件中提取的数据值,但日期也带有小时值

代码:

import pandas as pd

df = pd.read_excel(r'C:\gits\PCIv1.xlsm',sheet_name=9,names=None)

df = df.dropna()
print(df)

输出

  Unnamed: 0             Unnamed: 1           Unnamed: 2
0         ID                   Loja                 Data
6         19  B019 BOMPREÇO PIEDADE  2020-05-17 00:00:00

我想消除 '00:00:00' 并只保留格式为 DD/MM 的日/月

有什么帮助吗?

Tks

【问题讨论】:

  • 在日期列上确保数据类型是日期时间并使用类似 df[“date”].str.apply(lambda x: x.strftime(“%d/%m”)
  • @JQadrad,这将导致值错误,因为第 0 个索引中的值不是有效的日期模式。

标签: python pandas date


【解决方案1】:

在阅读excel时使用转换器,这将使您的生活更轻松,然后您必须申请dt.strftime

import pandas as pd
df2 = pd.read_excel('sample.xlsx', converters = {'Date' : pd.to_datetime})
df2['Date'] = df2['Date'].dt.strftime('%d/%m')
df2

试试下面的代码(读取excel后格式化字段)

df1 = pd.DataFrame({'Name':['A','B','A','B','C']
                    , 'ID':[3,4,3,5,6]
                    , 'Date':['2019-12-10 00:00:00','2019-12-10 00:00:00','2019-12-10 00:00:00'
                              ,'2019-12-10 00:00:00','2019-12-10 00:00:00']})
df1['Date'] = pd.to_datetime(df1['Date'], format="%Y-%m-%d %H:%M:%S", errors="coerce").dt.strftime('%d/%m')
df1

然后将你的 DataFrame 写入 Excel

【讨论】:

  • 太棒了! df['Data'] = df['Data'].dt.strftime('%d/%m') 给了我一个完美的解决方案!谢了!
【解决方案2】:

试试这个,

import pandas as pd

df = pd.read_excel(r'C:\gits\PCIv1.xlsm',sheet_name=9)
pd.to_datetime(df['Data'], format="%Y-%m-%d %H:%M:%S", errors="coerce").dt.strftime("%d-%m")

to_datetime

【讨论】:

    猜你喜欢
    • 2020-10-20
    • 2016-12-02
    • 2018-09-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 2014-02-23
    相关资源
    最近更新 更多