【问题标题】:.append creates nan values for new added row and saves the values on new indexes. Why?.append 为新添加的行创建 nan 值并将值保存在新索引上。为什么?
【发布时间】:2023-01-28 01:02:16
【问题描述】:

我有这个数据集:

inner_watt = pd.DataFrame(pd.read_csv('input/0.7mm/0.7inner-100watt.csv')[' Current-A'])

Current-A
2.3309
2.3309
2.3309
2.3309
2.3309
2.3309
2.3309
2.3309

现在我对前 4 个条目/样本进行切片,并对它们进行转置以转换为单行,然后附加到一个新的空数据框,例如;

formatted_inner_watt = pd.DataFrame(columns=range(4))
formatted_inner_watt = formatted_inner_watt.append(inner_watt[0:4].T, ignore_index=True)

结果最初是好的;

0   2.3309,2.3309,2.3309,2.3309

但是,当我再次尝试附加接下来的 4 个条目时,它会执行类似这样的操作;

formatted_inner_watt = formatted_inner_watt.append(inner_watt[4:8].T, ignore_index=True)
0   2.3309,2.3309,2.3309,2.3309,NaN,NaN,NaN,NaN
1   NaN,NaN,NaN,NaN,2.3309,2.3309,2.3309,2.3309

为什么 ?

【问题讨论】:

标签: python machine-learning data-science


【解决方案1】:

第二个切片 inner_watt[4:8].T 包含另一个顺序列 (4 5 6 7),这与第一个切片不同。所以列标签需要对齐。

但是,实际上 pd.append 已被弃用,请改用 pd.concat

columns=range(4)
pd.concat([inner_watt[0:4].T, inner_watt[4:8].T.set_axis(columns, axis=1)], ignore_index=True)

        0       1       2       3
0  2.3309  2.3309  2.3309  2.3309
1  2.3309  2.3309  2.3309  2.3309

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-13
    • 2020-09-01
    • 1970-01-01
    • 2010-10-19
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多