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 错误读取的年份是系统--yyy被读取为YY_Python 3.x_Pandas_Python Datetime - Fatal编程技术网

Python 3.x 错误读取的年份是系统--yyy被读取为YY

Python 3.x 错误读取的年份是系统--yyy被读取为YY,python-3.x,pandas,python-datetime,Python 3.x,Pandas,Python Datetime,我有一个以制表符分隔的txt文件。很少列的日期数据格式为 “2011年12月”、“1994年1月” etc日期范围为“1944年1月至2015年12月” 问题是原始数据中的日期格式为“Jan-1994”或年份为YYYY格式,但当我使用Spyder(3.7或4.0.1)或Jupyter或Notepad++读取数据时,无论何时,日期都被读取为 “1994年1月”、“2011年12月”等 我正在使用以下代码: import pandas as pd Raw_Data=pd.read_csv("XYZC

我有一个以制表符分隔的txt文件。很少列的日期数据格式为

“2011年12月”、“1994年1月”

etc日期范围为“1944年1月至2015年12月”

问题是原始数据中的日期格式为“Jan-1994”或年份为YYYY格式,但当我使用Spyder(3.7或4.0.1)或Jupyter或Notepad++读取数据时,无论何时,日期都被读取为

“1994年1月”、“2011年12月”等

我正在使用以下代码:

import pandas as pd
Raw_Data=pd.read_csv("XYZCorp_LendingData.txt", encoding="Latin-1", sep ='\t', low_memory=False)
输出应为:-此输出在办公系统中,这是正确的格式

但是

我得到如下输出,因为我的系统以YY格式而不是YYYY格式读取。 此输出在我的笔记本电脑中,不正确

此日期问题导致多个错误

此外,这个问题不仅与Spyder有关,我还面临其他应用程序(如Notepad++和Jupyter)的问题


**另请注意,我确保我交叉验证了两个系统中的日期和区域设置,两者几乎相同

您确定数据读取不正确吗?您可以通过将df写入新文件并检查新文件来检查它

import pandas as pd

Raw_Data=pd.read_csv("XYZCorp_LendingData.txt", encoding="Latin-1", sep ='\t', low_memory=False)
Raw_Data.to_csv('Date_check.csv')
我的猜测是,数据读取正确,但根据您的一些配置首选项显示。如果没有正确读取日期,您可以指定熊猫应该如何解析日期。使用
pd.read\u csv()
中的
date\u解析器
可选参数,例如:

import pandas as pd

parser = pd.to_datetime
df = pd.read_csv('file_name', parse_dates=[col_num_containing_dates], date_parser=parser)
其中,
parser
是要使用的函数名(不包括
()
,因为这将调用函数),
col\u num\u containing\u dates
是包含要解析的日期的列的编号

如果您希望更改日期的显示方式,则可以设置/更改系统的
locale
或使用
date.strftime(format)
明确指定您想要的格式


最后,如果您想更改导出
.csv
时写入日期的方式,您可以指定一个选项
df.to\u csv(date\u format='%d-%m-%Y')

您是否尝试过用纯python打开该文件?你确定这是4位数的年份吗?是的,我也试过。最糟糕的是,当我在其他同事的笔记本电脑上复制粘贴时,相同的代码集和相同的数据集运行得很好。所有的库都被更新了,系统几乎都是相同的,这很可能是你机器的本地问题,而不是一个可复制的问题。我怀疑系统的区域和时间设置,但不知道我们是什么?有什么建议吗
import pandas as pd

Raw_Data=pd.read_csv("XYZCorp_LendingData.txt", encoding="Latin-1", sep ='\t', low_memory=False)
Raw_Data.to_csv('Date_check.csv')
import pandas as pd

parser = pd.to_datetime
df = pd.read_csv('file_name', parse_dates=[col_num_containing_dates], date_parser=parser)
from datetime import datetime

test_string = '13-02-2019'
test_date = datetime.strptime(test_string, '%d-%m-%Y') # Create a datetime object
test_date.strftime('%d-%m-%y')

# Output: '13-02-19'

test_date.strftime('%d-%m-%Y') # Note the capital 'Y'
# Output: '13-02-2019'