Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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将xlsx另存为csv日期另存为日期时间_Python_Excel_Csv_Datetime_Xlsx - Fatal编程技术网

python将xlsx另存为csv日期另存为日期时间

python将xlsx另存为csv日期另存为日期时间,python,excel,csv,datetime,xlsx,Python,Excel,Csv,Datetime,Xlsx,我需要读取xlsx,将日期从dd-mm-yy格式化为yyy-mm-dd,然后保存为csv,以便输入到sqllite 我的一切正常,但当它保存为csv时,它会将日期转换为日期时间,例如2016-11-29变为2016-11-29 00:00:00。如何将csv格式设置为仅限日期 import win32com.client from win32com.client import constants import openpyxl import csv import pandas as pd im

我需要读取xlsx,将日期从dd-mm-yy格式化为yyy-mm-dd,然后保存为csv,以便输入到sqllite

我的一切正常,但当它保存为csv时,它会将日期转换为日期时间,例如2016-11-29变为2016-11-29 00:00:00。如何将csv格式设置为仅限日期

import win32com.client
from win32com.client import constants

import openpyxl
import csv
import pandas as pd
import sqlite3

f = r"Services.xlsx"

exc = win32com.client.gencache.EnsureDispatch("Excel.Application")
exc.Visible = 0
exc.Workbooks.Open(Filename=f)
exc.Rows("1:1").Select()
exc.Selection.Delete(Shift=constants.xlUp)
exc.Range("K:M").Select()
exc.Selection.NumberFormat = "yyyy-mm-dd"


exc.ActiveWorkbook.Save()
exc.Quit()

data_xls = pd.read_excel('c:\Data\Programs\Cashflow\Database\Services.xlsx', 'Sheet', index_col=None)
data_xls.to_csv('c:\Data\Programs\Cashflow\Database\Services.csv', encoding='utf-8')
你应该读书。在您的情况下,在调用
到\u csv()
之前,添加如下内容:

data_xls['some_column'] = data_xls['some_column'].map(pd.Timestamp.date)
你应该读书。在您的情况下,在调用
到\u csv()
之前,添加如下内容:

data_xls['some_column'] = data_xls['some_column'].map(pd.Timestamp.date)

来自Sangbok Lee的答案有效,但我遇到了日期列的空条目问题。我能够通过以下尝试解决问题,除了

try:
    data_xls["Final Report Date"] = data_xls["Final Report Date"].datetime.strptime(data_xls["Final Report Date"], '%d-%m-%Y')
except:
    pd.NaT   

来自Sangbok Lee的答案有效,但我遇到了日期列的空条目问题。我能够通过以下尝试解决问题,除了

try:
    data_xls["Final Report Date"] = data_xls["Final Report Date"].datetime.strptime(data_xls["Final Report Date"], '%d-%m-%Y')
except:
    pd.NaT   

非常好,非常感谢。唯一的问题是我在日期列中有空格,所以我想我需要循环检查数据是否为空,然后应用格式。非常好,谢谢。唯一的问题是我在日期列中有空格,所以我想我需要循环检查数据是否为空,然后应用格式。