![](/img/trans.png)
[英]Remove Semicolons as Line Delimiters Reading csv-file Using pandas.read_csv
[英]Reading a csv-file with pandas.read_csv and an index creates NaN entries
我的.csv文件以逗号分隔,这是read_csv的标准设置。
这是有效的:
T1 = pd.DataFrame(pd.read_csv(loggerfile, header = 2)) #header contains column "1"
但是只要我在DataFrame
之外向read_csv
的构造函数添加read_csv
,我的所有值都会突然read_csv
NaN
。 为什么? 怎么解决这个?
datetimeIdx = pd.to_datetime( T1["1"] ) #timestamp-column
T2 = pd.DataFrame(pd.read_csv(loggerfile, header = 2), index = datetimeIdx)
没有必要将read_csv
包装在DataFrame
调用中,因为它已经返回了一个DataFrame
。
如果要更改索引,可以使用set_index
或直接设置索引:
T1 = pd.read_csv(loggerfile, header = 2)
T1.index = pd.DatetimeIndex(T1["1"])
如果要将数据框中的列保留为日期时间(而不是字符串):
T1 = pd.read_csv(loggerfile, header = 2)
T1["1"] = pd.DatetimeIndex(T1["1"])
T2 = T1.set_index("1", drop=False)
但更好的是,您可以直接在read_csv
执行此read_csv
(假设列“1”是第一列):
pd.read_csv(loggerfile, header=2, index_col=0, parse_dates=True)
它返回带有NaNs
的DataFrame的原因是因为使用DataFrame作为输入的DataFrame()
调用将使用提供的输入执行reindex
操作。 由于datetimeIdx
中的所有标签都不在T1
的原始索引中,因此您将获得包含所有NaN的数据框。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.