Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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 3.x 系列格式熊猫_Python 3.x_Pandas - Fatal编程技术网

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()