Python自动将特定数据转换为日期格式并丢失数据



我正在用pandas清理csv文件,主要是删除特殊字符,如('/','#'等)。该文件有7列(没有一列是日期)。

在某些列中,只有数字数据,如'11/6/1980'。

我注意到直接在阅读csv文件后,

df = pd.read_csv ('report16.csv', encoding ='ANSI')

此数据变为'11/6/80',清理后变为'11 6 80'(输出文件中的结果相同)。因此,只要数据中有'/',它就被解释为日期,python将从数据中删除前两位数字。

不是答案,但是注释不允许包含良好呈现的代码和数据。

这是一个我称之为最小可复制的例子:

sample.csv文件的内容:

Data,Expected result,Actual Result
11/6/1980,11 6 1980,11 6 80
12/8/1983,12 8 1983,12 8 83

代码:

df = pd.read_csv('sample.csv')
print(df)
s = df['Data'].str.replace('/', ' ')
print((df['Expected result'] == s).all())

给出:

Data Expected result Actual Result
0  11/6/1980       11 6 1980       11 6 80
1  12/8/1983       12 8 1983       12 8 83
True

这证明read_csv正确地读取了文件并且没有更改任何内容。

请将CSV文件的内容显示为文本,以及足够的代码来重现您的问题。

如何尝试字符串操作?!首先选择要修改并替换的列"/"或"#";column.str.replace("/", ";")。我希望这能成功!

转换日期的行为不是严格意义上的python问题。您正在使用pandas read_csv.

尝试显式声明一个分隔符。如果sep未声明,则进行猜测。

df = pd.read_csv ('report16.csv', encoding ='ANSI', sep =',') 

相关内容

  • 没有找到相关文章

最新更新