Python 使用pandas.read_csv和索引读取csv文件将创建NaN条目

Python 使用pandas.read_csv和索引读取csv文件将创建NaN条目,python,pandas,ipython-notebook,Python,Pandas,Ipython Notebook,My.csv文件以逗号分隔,这是read_csv的标准设置 这是有效的: T1 = pd.DataFrame(pd.read_csv(loggerfile, header = 2)) #header contains column "1" 但是,只要我在数据帧的构造函数中添加了一些内容,除了read\u csv,我所有的值都会突然变为NaN。 为什么?如何解决这个问题 datetimeIdx = pd.to_datetime( T1["1"] ) #timesta

My.csv文件以逗号分隔,这是read_csv的标准设置

这是有效的:

T1 = pd.DataFrame(pd.read_csv(loggerfile, header = 2)) #header contains column "1"
但是,只要我在
数据帧
的构造函数中添加了一些内容,除了
read\u csv
,我所有的值都会突然变为
NaN
。 为什么?如何解决这个问题

datetimeIdx = pd.to_datetime( T1["1"] )                #timestamp-column
T2 = pd.DataFrame(pd.read_csv(loggerfile, header = 2), index = datetimeIdx)

无需在
DataFrame
调用中包装
read\u csv
,因为它已返回
DataFrame

如果要更改索引,可以使用
set_index
或直接设置索引:

T1 = pd.read_csv(loggerfile, header = 2)
T1.index = pd.DatetimeIndex(T1["1"])
如果要将数据帧中的列保留为日期时间(而不是字符串):

但更好的是,您可以直接在中执行此操作(假设列“1”是第一列):



它返回带有
NaNs
的数据帧的原因是,使用数据帧作为输入的
DataFrame()
调用将使用提供的输入执行
reindex
操作。由于
datetimeIdx
中的标签都不在
T1
的原始索引中,因此您会得到一个包含所有NAN的数据帧。

这个答案是否可能与我的另一个问题有关?是否可以将索引列作为副本保留在数据帧中?我的第一个建议(直接设置索引)将把列保留在数据帧中
T1 = pd.read_csv(loggerfile, header = 2)
T1["1"] = pd.DatetimeIndex(T1["1"])
T2 = T1.set_index("1", drop=False)
pd.read_csv(loggerfile, header=2, index_col=0, parse_dates=True)