我正在读取一个具有多个日期时间列的csv文件。我需要在读取文件时设置数据类型,但日期时间似乎是一个问题。例如:
headers = ['col1', 'col2', 'col3', 'col4']
dtypes = ['datetime', 'datetime', 'str', 'float']
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)
当run给出错误时:
数据类型“datetime”不理解
转换列后,通过pandas.to_datetime()不是一个选项,我不知道哪些列将是datetime对象。该信息可以更改,并且来自通知dtypes列表的任何信息。
或者,我尝试用numpy加载csv文件。Genfromtxt,在该函数中设置dtypes,然后转换为pandas。Dataframe但它混淆了数据。任何帮助都非常感谢!
我尝试使用dtypes=[datetime,…选项,但是
import pandas as pd
from datetime import datetime
headers = ['col1', 'col2', 'col3', 'col4']
dtypes = [datetime, datetime, str, float]
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)
我遇到了以下错误:
TypeError: data type not understood
唯一需要做的更改是用datetime.datetime替换datetime
import pandas as pd
from datetime import datetime
headers = ['col1', 'col2', 'col3', 'col4']
dtypes = [datetime.datetime, datetime.datetime, str, float]
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)
您可以尝试传递实际类型而不是字符串。
import pandas as pd
from datetime import datetime
headers = ['col1', 'col2', 'col3', 'col4']
dtypes = [datetime, datetime, str, float]
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)
但如果没有任何数据可以修补,就很难诊断出这种情况。
实际上,你可能希望pandas将日期解析为时间戳,所以可能是:
pd.read_csv(file, sep='\t', header=None, names=headers, parse_dates=True)
我尝试使用dtypes=[datetime,…选项,但是
import pandas as pd
from datetime import datetime
headers = ['col1', 'col2', 'col3', 'col4']
dtypes = [datetime, datetime, str, float]
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)
我遇到了以下错误:
TypeError: data type not understood
唯一需要做的更改是用datetime.datetime替换datetime
import pandas as pd
from datetime import datetime
headers = ['col1', 'col2', 'col3', 'col4']
dtypes = [datetime.datetime, datetime.datetime, str, float]
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)