gpt4 book ai didi

python - 将数据框中的行的一部分向右移动?

转载 作者:行者123 更新时间:2023-12-01 08:04:41 25 4
gpt4 key购买 nike

有问题的数据框正在使用 Tabula 从 pdf 文件中读取数据,并在错误的位置获取一些列。它看起来像这样:

Index  Name Date  Time  Exp   QT        Comm   Load  Notes
0 VT1 04/16 4:00 Glen 1600 Wheat NaN LTA/Book
1 VT2 04/16 4:00 Cof 16000 Wheat NaN Split/LTA
2 VT3 Glen 35100 Wheat LTA NaN NaN NaN
3 VT4 Glen 18416 Wheat Split/LTA NaN Nan NaN

我不确定为什么会这样,但问题很明显,在此数据帧的最后几行中,格式不再正确读取,并开始忽略空单元格并向左移动数据。我想做的是移动第 2 行和第 3 行,以便它们正确定向到列。最终结果应该是:

Index  Name Date  Time  Exp   QT        Comm   Load  Notes
0 VT1 04/16 4:00 Glen 1600 Wheat NaN LTA/Book
1 VT2 04/16 4:00 Cof 16000 Wheat NaN Split/LTA
2 VT3 NaN NaN Glen 35100 Wheat NaN LTA
3 VT4 NaN NaN Glen 18416 Wheat NaN Split/LTA

我想不出一种不包含过于复杂和低效的内容的方法。

最佳答案

我认为你必须屏蔽所有满足条件的行。

在这种情况下,如果['Comm', 'Load', 'Notes']始终为NaN

mask = df[['Comm', 'Load', 'Notes']].isna().all(axis=1)

然后使用.shift并将其分配回数据帧。

df.loc[mask, 'Date':'Notes'] = df.loc[mask, 'Date':'Notes'].shift(2, axis=1)

df

Index Name Date Time Exp QT Comm Load Notes
0 0 VT1 04/16 4:00 Glen 1600 Wheat NaN LTA/Book
1 1 VT2 04/16 4:00 Cof 16000 Wheat NaN Split/LTA
2 2 VT3 NaN NaN Glen 35100 Wheat NaN LTA
3 3 VT4 NaN NaN Glen 18416 Wheat NaN Split/LTA

关于python - 将数据框中的行的一部分向右移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55595458/

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