Python Pandas 数据以日期格式输出到 excel 的问题 [重复]

Posted

技术标签:

【中文标题】Python Pandas 数据以日期格式输出到 excel 的问题 [重复]【英文标题】:Problem with Python Pandas data output to excel in date format [duplicate] 【发布时间】:2020-12-18 14:54:36 【问题描述】:

在将值打印到Excel sheet 之前,需要有关如何将Pandas 中的值格式化为日期格式的指导。

我是Pandas 的新手,当值输出到Excel sheet 时,我必须编辑现有代码。 在完成一些条件/函数计算后,该值将输出到Excel。 我的当前值似乎是 string format,这不是 Excel 友好的日期格式。

值的输出如下所示:

需要将输出格式化为日期格式

我确实尝试了strptime 的选项,但根据我的理解,这些值也会以字符串格式提供输出。奇怪的是,我也无法使用Excel 格式化选项将Excel 中的列格式化为日期格式。

感谢您的时间和帮助。

我的代码是这样的:


def calculate(snumber,owner,reason):
    #some if conditions and then
    date11 = Date + relativedelta(months = 1)
    return date11.strftime('%d %b %Y')


df['date1'] = df.apply(lambda x: calculate(x['snumber'], x['owner'], x['reason']), axis=1)

【问题讨论】:

【参考方案1】:

为确保您有日期格式的列,请使用以下

df['date1'] = df['date1'].dt.strftime('%Y/%m/%d')

完成后,您可以使用 Pandas ExcelWriter 的 xlsxwriter 引擎。

请在本文中查看更多详细信息:https://xlsxwriter.readthedocs.io/example_pandas_column_formats.html

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter("pandas_column_formats.xlsx", engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')

# Get the xlsxwriter workbook and worksheet objects.
workbook  = writer.book
worksheet = writer.sheets['Sheet1']

format = workbook.add_format('num_format': 'dd/mm/yy')

# Set the column width and format. 
# Provide proper column where you have date info.
worksheet.set_column('A:A', 18, format)

# Close the Pandas Excel writer and output the Excel file.
writer.save()

【讨论】:

【参考方案2】:

使用以下方法在 pandas 数据框中转换日期格式:

date['date1'] = pd.to_datetime(df['date1'])

例子:

我有一个数据框

PRODUCT     PRICE   PURCHSE     date
0   ABC     5000    True    2020/06/01
1   ABB     2500    False   2020/06/01

在数据框中的日期上应用上面给定的公式

df['date'] = pd.to_datetime(df['date'])

输出如下:

    PRODUCT     PRICE   PURCHSE     date
0   ABC     5000    True    2020-06-01
1   ABB     2500    False   2020-06-01

【讨论】:

以上是关于Python Pandas 数据以日期格式输出到 excel 的问题 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

以日期为列名的 Python Pandas Pivot() 需要排序和格式化

将列字符串转换/解析为日期时间值 - 熊猫

如何在 pandas 的数据框中选择多个日期列,然后将它们全部格式化? (Python)

如何找出 python pandas 数据框列(日期格式)中的空白?

Python pandas数据框“日期”索引xlsx和csv中的不同格式

Python pandas整数YYYYMMDD到日期时间