gpt4 book ai didi

python - 使用 pandas.read_csv 和索引读取 csv 文件会创建 NaN 条目

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:20 24 4
gpt4 key购买 nike

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

这是有效的:

T1 = pd.DataFrame(pd.read_csv(loggerfile, header = 2)) #header contains column "1"

但一旦我在 DataFrame 的构造函数中添加了 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 中执行此操作(假设“1”列是第一列):

pd.read_csv(loggerfile, header=2, index_col=0, parse_dates=True)

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

关于python - 使用 pandas.read_csv 和索引读取 csv 文件会创建 NaN 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22655438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com