Python 3.x 系列格式熊猫
Python 3.x 系列格式熊猫,python-3.x,pandas,Python 3.x,Pandas,我试图将INVDAT列格式化为正确的日期格式,如11/25/19,我尝试了多种解决方案,但始终遇到以下错误:TypeError:combine()参数1必须是datetime.date,而不是int,然后我尝试将整数转换为日期类型,但它也会出错。或者您可以简单地使用df[“INVDAT”]=pd.to_datetime(df[“INVDAT”],format=“%m/%d/%y”),在这种情况下,您不需要日期时间包装。有关更多信息,请参阅 此解决方案可以工作,但如果日期表示为单月,如12519(
我试图将INVDAT列格式化为正确的日期格式,如11/25/19,我尝试了多种解决方案,但始终遇到以下错误:TypeError:combine()参数1必须是datetime.date,而不是int,然后我尝试将整数转换为日期类型,但它也会出错。或者您可以简单地使用
df[“INVDAT”]=pd.to_datetime(df[“INVDAT”],format=“%m/%d/%y”)
,在这种情况下,您不需要日期时间
包装。有关更多信息,请参阅
此解决方案可以工作,但如果日期表示为单月,如12519(预期输出1/25/19),则会失败。我尝试使用一个条件将0添加到前面的if len()<6,但它给了我一个错误,即数据类型是int64。import pandas as pd
import pandas as pd
import os
# get username
user = os.getlogin()
def file_process():
data = pd.read_excel('C:\\Users\\' + user + '\\My Documents\\XINVST.xls')
# Change the date and time formatting
data['INVDAT'] = data['INVDAT'].astype('str')
length = len(data['INVDAT'])
data['INVDAT'].pop(length - 1)
for i in data['INVDAT'].str.len():
if i <= 5:
data['INVDAT'] = data['INVDAT'].apply(lambda x: '{0:0>6}'.format(x))
length = len(data['INVDAT'])
data['INVDAT'].pop(length - 1)
data["INVDAT"] = pd.to_datetime(data["INVDAT"])
data["INVDAT"] = data["INVDAT"].dt.strftime("%m/%d/%Y")
else:
data["INVDAT"] = pd.to_datetime(data["INVDAT"])
data["INVDAT"] = data["INVDAT"].dt.strftime("%m/%d/%Y")
# output to new file
new_data = data
new_data.to_excel('C:\\Users\\' + user + '\\Desktop\\XINVST.xls', index=None)
if __name__ == '__main__':
file_process()
导入操作系统
#获取用户名
user=os.getlogin()
def文件_进程():
data=pd.read\u excel('C:\\Users\\'+user+'\\My Documents\\XINVST.xls'))
#更改日期和时间格式
数据['INVDAT']=data['INVDAT'].astype('str')
长度=长度(数据['INVDAT'])
数据['INVDAT'].pop(长度-1)
对于数据中的i['INVDAT'].str.len():
如果我是你,这不是为你做家庭作业的地方。展示你迄今为止所做的尝试以及失败的原因。其他新闻:看那边:非常有趣,我65岁了,远远超过了我的学年。感谢提供的链接提供的解决方案,得到一个错误df[“INVDAT”]=df[“INVDAT”].dt.strftime(“%m-%d-%Y”)AttributeError:只能使用具有datetimelike值的.dt访问器请查看此答案:)
data['INVDAT'] = data['INVDAT'].astype('str')
data["INVDAT"] = pd.to_datetime(data["INVDAT"])
data["INVDAT"] = data["INVDAT"].dt.strftime("%m/%d/%Y")
import pandas as pd
import os
# get username
user = os.getlogin()
def file_process():
data = pd.read_excel('C:\\Users\\' + user + '\\My Documents\\XINVST.xls')
# Change the date and time formatting
data['INVDAT'] = data['INVDAT'].astype('str')
length = len(data['INVDAT'])
data['INVDAT'].pop(length - 1)
for i in data['INVDAT'].str.len():
if i <= 5:
data['INVDAT'] = data['INVDAT'].apply(lambda x: '{0:0>6}'.format(x))
length = len(data['INVDAT'])
data['INVDAT'].pop(length - 1)
data["INVDAT"] = pd.to_datetime(data["INVDAT"])
data["INVDAT"] = data["INVDAT"].dt.strftime("%m/%d/%Y")
else:
data["INVDAT"] = pd.to_datetime(data["INVDAT"])
data["INVDAT"] = data["INVDAT"].dt.strftime("%m/%d/%Y")
# output to new file
new_data = data
new_data.to_excel('C:\\Users\\' + user + '\\Desktop\\XINVST.xls', index=None)
if __name__ == '__main__':
file_process()